jQuery选择器中各个符号的区别

你的善良,必须带点锋芒,否则等于零。

概述

空格:$('parent childchild')表示获取parent下的所有的childchild节点

大于号:$('parent > childchild')表示获取parent下的所有下一级childchild

加号:$('pre + nextbrother')表示获得pre节点的下一个兄弟节点,相当于next()方法

波浪号:$('pre ~ brother')表示获取pre节点的后面的所有兄弟节点,相当于nextAll()方法

详细解读

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<div id="imgs_box">
<ul class="play_imgs_width imgs_source">
<li><a href="javascript:;"></a></li>
<li><a href="javascript:;"></a></li>
<li><a href="javascript:;"></a></li>
</ul>
<ul class="imgs_buttons play_imgs_width">
<li><a href="" class="buttons_ahover">1</a></li>
<li><a href="" class="buttons_default">2</a></li>
<li><a href="" class="buttons_default">3</a></li>
</ul>
<ul class="test">
<li>
<ul class="test_first_child">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</li>
</ul>
</div>

空格的使用

如果要获取imgs_box中的所有a标签,可以使用空格,代码如下

1
$('#imgs_box a').length;  // 6

大于号的使用

如果要imgs_box中下一级的所有ul元素,不包含类为test_first_child的元素,可以使用如下代码

1
$('#imgs_box > ul').length;

加号的使用

如果想获取类为imgs_source元素的相邻的下一个元素,可以使用加号

1
$('.imgs_source + ul').css("color","red");

波浪号的使用

如果想获取类为 imgs_source元素所有的同级元素,可以使用波浪号~

1
$('.imgs_source ~ ul').css("color","red");