1、基本选择器
l ID 根据元素ID选择
l Elementname 根据元素名称选择
l Classname 根据元素css类名选择
举例:
<input type=”text” id=”ID” value=”根据ID选择”/> <a>根据元素名称选择</a> <input type=”text” class=”classname” value=”根据元素css类名选择”/>
取值:
jQuery(“#ID”).val(); jQuery(“a”).text(); jQuery(“.classname”).val();
以上为最常见的选择器,其中ID选择器是效率最高的,在可能的情况下应该尽量使用它。
2、层次选择器
l Ancestor descendant 祖先和子孙选择器
l Parent > child 父子节点选择器
l Prev + next 同级别选择器
l Prev ~ siblings 过滤选择器
举例:
<div id=”divTest”> <input type=”text” value=”1”/> <input id=”next” type=”text”/> <input type=”text” value=”2”/> <input type=”text” title=”t” value=”3”/> <a>1</a> <a>2</a> </div>
结果:
//得到div中的a标签内容 结果为12 jQuery(“#divTest a”).text(); //输出div直接子节点 结果为1 jQuery(“#divTest>input”).val(); //输出id为next的后一个同级别元素 结果为2 jQuery(“#next+input”).val(); //输出id为next,且有title的元素 结果为3 jQuery(“#next~[title]”).val();
3、基本过滤选择器
l :first 找到第一元素
l :last 找到最后一个元素
l :not(selector) 去除与给定选择器匹配的元素
l :even 匹配索引值为偶数的元素 从0开始计数
l :odd 匹配索引值为奇数的元素 从0开始计数
l :eq(index) 匹配一个给定索引值元素 从0开始
l :gt(index) 匹配大于给定索引值元素
l :lt(index) 匹配小于给定索引值元素
l :header 选择h1,h2,h3一类的标签 (目前没用过)
l :animated 匹配正执行动画效果的元素 (目前没用过)
举例:
<div id="divTest"> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <input type="radio" value="r1" checked="checked"/> <input type="radio" value="r2"/> </ul> </div>
结果:
$(document).ready(function(){ //第一个li内容 结果为1 alert(jQuery("li:first").text()) //最后一个li内容 结果为4 alert(jQuery("li:last").text()); //input未被选中的值 结果为r2 alert(jQuery("li input:not(:checked)").val()) //索引为偶数的li 结果为2,4 alert(jQuery("li:even").text()); //索引为奇数的li 结果为1,3 alert(jQuery("li:odd").text()) //索引大于2的li的内容 结果为4 alert(jQuery("li:gt(2)").text()) //索引小于1的li的内容 结果为1 alert(jQuery("li:lt(1)").text()) });
4、内容过滤器
l :Contains(text) 匹配包含给定文本的元素
l :empty 匹配所有不包含子元素或者文本的空元素
l :has(selector) 匹配含有选择器所匹配的元素
举例:
<div id="Test"> <ul> <li>qq123</li> <li>qq</li> <li></li> <li>a</li> <li><a>b</a></li> </ul> </div>
结果:
$(document).ready(function(){ //包含qq的li的内容 结果为qq123投资 qq alert(jQuery("li:contains('qq')").text()) //内容为空的li的后一个li内容 结果为a alert(jQuery("li:empty+li").text()) //包含a标签的li的内容 结果为b alert(jQuery("li:has(a)").text()); });
5、可见性过滤器
l :hidden 匹配不可见元素
l :visible 匹配可见元素
举例:
<div id="Test"> <ul> <li>可见</li> <li style="display:none;">不可见</li> </ul> </div>
结果:
$(document).ready(function(){ //不可见的li的内容 结果为不可见 jQuery("li:hidden").text(); //可见的li的内容 结果为可见 jQuery("li:visible").text(); });
6、属性过滤器
l [attribute=value] 匹配属性是给定值得元素
l [attribute^=value] 匹配属性是以给定值结束的元素
l [attribute$=value] 匹配属性是以给定值结束的元素
l [attribute*=value] 匹配属性包含给定值得元素
举例:
<div id="Test"> <input type="text" name="qq123" value="qq123" /> <input type="text" name="123qq" value="123qq" /> <input type="text" name="a" value="a" /> </div>
结果:
$(document).ready(function(){ //name为qq123的值 结果为qq123投资 alert(jQuery("input[name='qq123']").val()); //name以qq开始的值 结果为qq123投资 alert(jQuery("input[name^='qq']").val()); //name以qq结束的值 结果为投资123qq alert(jQuery("input[name$='qq']").val()); //name包含a的值 结果为a alert(jQuery("input[name*='a']").val()); });