基于jQuery 的find()函数和children()函数的区别

代码2018-07-121,276 人已阅来源:Demonhe

element.find(selector)  返回匹配element集合中每个元素的后代,参数selector是必须的,可以通过选择器对元素进行过滤,筛选出符合条件的元素。如果想选中所有的后代元素,则参数传通配选择器  "*"

element.children(selector)  返回匹配element集合中每个元素的子代,参数selector不是必须的,如果参数省略,则会选中element下的所有子代元素;如果传入参数,则会在子代元素中通过选择器对其进行过滤,筛选出符合条件的元素。

总结:children只会遍历指定DOM元素的下一层级,find会遍历指定DOM元素下的所有后代层级

find方法扩展

选择器context就是用find方法实现的。

jquery(selector,[context]) 即$(selector,[context])

可能大多数的人都是只用到了$(selector)来选择元素,如果只传入第一个参数的话,就会从document元素下查找匹配的元素。

如果传入第二个参数,就会从context中查找,其返回的元素顺序等同于在context中出现的先后顺序。

$("p", this) 等价于 $(this).find("p"),$("li.item-ii").find("li") 等价于 $("li","li.item-ii")