[置顶] Jquery学习总结(二) jquery选择器详解

时间:2022-05-27 05:48:51

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