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

时间:2023-03-09 20:38:24
基于jquery 的find()函数和children()函数的区别

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')