元素的遍历
jQuery 遍历,意为“移动”,用于根据其相对于其他元素的关系来“查找”(或选取)HTML 元素。以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。
下图展示了一个家族树。通过 jQuery 遍历,你能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动(子孙),水平移动(同胞)。这种移动被称为对 DOM 进行遍历。
<div id="div">
<ul id="ul">
<li id="li1">
<b>111</b>
</li>
<li id="li2">
<span id="span1"><b>222<b><span>
<span id="span2"><b>333<b></span>
</li>
</ul>
</div>
1. parent() : 返回被选元素的直接父元素。
$("#span1").parent(); -> #li2 //span1的直接父元素就是li2
ps:一个元素只能有一个父元素,就是外面包裹着的那一个元素,但是可以有很多祖先,就是那外面一层层包裹着它的那些元素。一个元素也可以有很多子元素和孙元素。子元素是直接包裹的,子元素里面还有的元素那叫孙。比如,我们只能有一个父亲,可以有很多祖辈,也可以由很多儿子,儿子再生儿子女儿就是孙子。
2. parents() : 返回被选元素的所有祖先元素。
$("#span1").parents(); -> #li2 #ul #div //返回span1的所有祖先元素,这爸爸当然也属于祖先里的一个啦。
3. parentUtil() :返回介于被选元素和给定的元素之间的所有祖先元素。
$("#span1").parentUtil("#div1"); -> #li2 #ul //这夹在span1和div1之间的祖先就只有li2和ul了。
上面的三个方法是找父亲找祖先的方法,它们是沿着DOM树往上遍历。
4. children() :返回被选元素的所有直接子元素。
$("#li2").children(); -> #span1 #span2 //li2的直接子元素只有#span1和#span2,里面的b元素是孙了。
5. find() : 返回被选元素的后代元素,一路向下到最后一个后代元素,一路一直向下到最后一个后代。
$("ul").find("*");
-> 返回#li1,#li2,#span1,#span2,<b>111</b>,<b>222</b>,<b>333</b>
这是ul元素下面的所有子孙元素。
$("ul").find("span");
-> 返回所有的span子孙元素,#span1,#span2。
上面的两个方法是找子孙元素的方法,它们是沿着DOM树往下遍历。
6. siblings() :返回被选元素的所有同胞元素。(可带参数)
$("#span1").siblings(); -> span2 #span1的同胞元素只有span2。
7. next() :返回备选元素的下一个同胞元素。(可带参数)
$("#span1").next(); -> #span2
#span1的下一个同胞元素是#span2,这个方法仅返回一个元素,同时也可以指定参数,比如$("#span1").next("p");是寻找#span1的下一个P同胞元素。这个例子里面找不到span1的下一个为p的同胞元素。
8. nextAll() : 返回被选元素后的所有跟随元素。
这个方法只返回被选元素后面的所有同胞元素,并不会返回位于被选元素前的同胞元素,而siblings()就可以返回所有同胞元素。
9. nextUtil() :返回介于被选元素和给定参数之间的所有同胞元素。
用法:$("#span1").nextUtil("#span3");
这是寻找span1和span3之间的所有的同胞元素,在上述例子中没有写span3,但是如果在span2后面加个span3的话,那这句话就是返回span2元素。
10. prev(),prevAll(),prevUtil() :这三个方法与上面的几个方法相同,不过遍历方向相反,是向前遍历,返回前面的同胞元素。
上面七个方法是水平向中遍历DOM树。
11. first() : 返回与被选元素匹配的首个元素。
$("li").first(); -> #li1
这个方法返回了从html文档找到的第一个li元素,就是li1。
12. last() : 返回与被选元素匹配的最后一个元素。与first()相反。
13. eq() :返回等于第几个索引号的元素,(索引号从0开始)。
比如: $("li").eq(1); -> #li2
这个例子返回的是文档中的第二个li元素,因为元素的索引从0开始。
14. filter() :允许规定一个标准,不匹配这个标准的会被从集合中删除,匹配的则返回。
比如:$("li").filter("#li1"); ->#li 返回所有的li元素中id为li1的元素。
$("li").filter(".intro"); -> 返回所有li元素中类名为“.intro”的元素。
15. not() :与filter的作用相反,返回所有不匹配标准的元素。
上面的五个方法可以缩小搜索的范围,迅速精准的找到元素。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。