jQuery_2_常规选择器-进阶选择器
进阶选择器:
1. 群组选择器 $("span,em,#box") 获取多个选择器的DOM对象
<div id="d1">div</div> <div>div</div> <div>div</div> <p class="c1">p</p> <p class="c1">p</p> <p>p</p> <strong>strong</strong> <strong>strong</strong> <strong>strong</strong>
div,p,strong{ color:red; } #d1,.c1,strong{ color:red; }
$("div,p,strong").css("color", "red");
$("#d1,.c1,strong").css("color", "red");
2. 后代选择器 $("ul li a") 获取追溯的多个DOM对象
<ul> <li><a href="###">首页</a></li> <li><a href="###">首页</a></li> <li><em>首页</em></li> <li><strong>首页</strong></li> </ul> <a href="###">首页</a> <a href="###">首页</a> <p>首页</p> <p>首页</p> <span>首页</span> <span>首页</span>
ul li a{ color:green; }
$("ul li a").css("color", "green");
3. 通配器选择器 $("*") 获取所有元素标签的DOM对象
*{ color:orange; } ul li *{ color:green; }
alert($("*").size()); //通配符选择器 alert($("*")[5].nodeName); $("*").css("color", "blue"); //在全局范围使用*,会极大的消耗资源,所以不建议在全局使用 $("ul li *").css("color", "red"); //统配选择器应用在局部的环境内
4.限定选择器
5.多class选择器
<div class="c1 c2">div</div> <p class="c1">p</p> <div class="c2">div</div> <p class="c1">p</p>
div.c1{ color:red; .c1.c2{ color:green;
$("div.c2").css("color", "red"); //限定选择器 $(".c1.c2").css("color", "blue");//多class选择器
6. 在构造选择器时,有一个通用的优化原则:只主球必要的确定性
$("div$box p ul li a#link") //可以,选择器越复杂,那么字符串解析就越慢 $("#link");//单个ID不需要字符串解析,就可以获取到