JQuery 父()、父()和最近()函数之间的区别

我已经使用 jQuery 有一段时间了。我想使用 parent()选择器。我还想出了 closest()选择器。找不出他们之间有什么不同。有吗?如果是,什么?

parent()parents()closest()之间有什么区别?

138898 次浏览

这两者之间的差异虽然微妙,但意义重大:

最接近的()

  • 从当前元素开始
  • 沿 DOM 树向上移动,直到找到与提供的选择器匹配的结果为止
  • 返回的 jQuery 对象包含零个或一个元素

翻译: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳父母: 奇芳

  • 从父元素开始
  • 沿 DOM 树向上移动到文档的根元素,将每个祖先元素添加到临时集合; 然后根据选择器(如果提供了选择器)过滤该集合
  • 返回的 jQuery 对象包含零个、一个或多个元素

来自 jQuery 医生

http://api.jquery.com/closest/

。家长()。最接近()的方法是相似的,因为它们都是 遍历 DOM 树 微妙的,有意义的:

最近的()

  • 从当前元素开始
  • < li > 沿 DOM 树向上移动,直到找到与提供的 选择器
  • 返回的 jQuery 对象包含零个或一个元素

父母()

  • 从父元素开始
  • < li > 向上移动 DOM 树到文档的根元素,添加 祖先元素添加到临时集合中; 然后过滤该元素 如果提供 ,则基于选择器集合
  • 返回的 jQuery 对象包含零个、一个或多个元素

父母()

    给定一个表示一组 DOM 元素的 jQuery 对象,则 . father ()方法允许我们搜索这些 元素,并从 匹配元素
< p > < strong > 注: < em > . father ()和. father ()方法是相似的,除了 后者只在 DOM 树上传递一个级别, 方法返回一个包含文档的集合,而 $(“ html”) . father ()返回一个空集

下面是相关的线索:

closest()选择与选择器匹配的第一个元素 up 从当前元素开始并向上传播。

parent()选择 DOM 树上的一个元素(单层)。

parents()方法类似于 parent(),但是选择所有 匹配 DOM 树中的元素。从父元素开始向上传播。

$(this).closest('div')$(this).parents('div').eq(0)是一样的。

$(this).closest('div')$(this).parents('div').eq(0)都有区别

基本上,closest从当前元素开始匹配元素,而 parents从父元素开始匹配元素(比当前元素高一级)

参见 http://jsfiddle.net/imrankabir/c1jhocre/1/

方法返回所选元素的直接父元素。此方法只在 DOM 树上遍历 单身级。

parents()方法允许我们在 DOM 树中搜索这些元素的 祖先。从给定的选择器开始并向上移动。

The **.parents()** and **.parent()** methods are almost similar, except that the latter only travels a single level up the DOM tree. Also, **$( "html" ).parent()** method returns a set containing document whereas **$( "html" ).parents()** returns an empty set.


[closest()][3]method returns the first ancestor of the selected element.An ancestor is a parent, grandparent, great-grandparent, and so on.


This method traverse upwards from the current element, all the way up to the document's root element (<html>), to find the first ancestor of DOM elements.


According to docs:


**closest()** method is similar to **parents()**, in that they both traverse up the DOM tree. The differences are as follows:


**closest()**


Begins with the current element
Travels up the DOM tree and returns the first (single) ancestor that matches the passed expression
The returned jQuery object contains zero or one element


**parents()**


Begins with the parent element
Travels up the DOM tree and returns all ancestors that matches the passed expression
The returned jQuery object contains zero or more than one element