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());
});