jQuery中find()和closest()的区别
在看find()和closest()方法的区别之前,让我们简单了解一下什么是这些方法,它们做什么。
1.find()方法:该方法用于获取当前匹配元素集合中每个元素的所有过滤后的后代。
语法:
参数:一个选择器表达式,元素,或jQuery对象,以过滤搜索的后代。
返回值:它返回调用find()方法的元素的所有匹配的子代。这个方法遍历了DOM,一直到最后一个子代。这意味着它遍历了DOM的所有层级,比如子代、孙代、曾孙代,等等。
例子:在下面的代码中,**它将找到p
标签内的所有span
标签,并将其颜色改为蓝色。
输出:
2.closest()方法:该方法用于获取所选元素的第一个祖先。祖先可以是父母、祖父母、曾祖父母,等等。
语法:
参数:一个选择器表达式,元素,或jQuery对象来过滤搜索一个祖先。
例子:这个方法一直追溯到文档的根元素,即找到<HTML>
所选元素的第一个祖先。我们有三层的无序列表<ul>
标签。在对<li>tag
调用closest()方法后,它返回第一个最接近的<ul>tag
。
输出:
**find()和closest()之间的区别 **
find() | closest() |
---|---|
该方法用于获取当前匹配元素集合中每个元素的所有过滤后的后代。 | 此方法用于获取所选元素的第一个祖先。 |
这个方法可以遍历DOM,直到最后一个子元素。 | 这个方法可以遍历DOM,直到文档的根元素。 |
这个方法沿着树的方向寻找孩子和孩子的孩子。 | 这个方法在树上寻找父母。 |
其语法为-。$(selector).find(filter) | 其语法为-。$(selector).closest(filter) |
它把参数作为一个过滤表达式 | 它把参数作为一个过滤表达式 |
它用于返回所选元素的后代元素 | 它返回所选元素的第一代祖先。 |