jQuery parent(),parents()和nearest()函数之间的区别

Saj*_*ung 174 jquery

我一直在使用jQuery.我想使用parent()选择器.我也提出了closest()选择器.找不到它们之间的任何区别.有没有?如果有,那是什么?

有什么区别parent(),parents()closest()

Nav*_*eed 187

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

.家长().closest()方法,它们都向上遍历DOM树相似.两者之间的差异虽然微妙,但意义重大:

.closest()

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

.父母()

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

.parent()

  • 给定一个表示一组DOM元素的jQuery对象,.parent()方法允许我们在DOM树中搜索这些元素的父元素,并从匹配元素构造一个新的jQuery对象.

注意: .parents()和.parent()方法类似,只是后者只在DOM树上运行一个级别.另外,$("html").parent()方法返回一个包含文档的集合,而$("html").parentss()返回一个空集.

这是相关的主题:

  • 他实际上询问了父母(),而不是父母(). (8认同)
  • @ScubaSteve:请用"注意"再次检查答案. (2认同)

Sub*_*ash 164

closest()从DOM树中选择与选择器匹配的第一个元素.从当前元素开始并向上移动.

parent() 选择一个元素(单层向上)DOM树.

parents()方法类似于parent()但是选择DOM树上的所有匹配元素.从父元素开始并向上移动.

  • 这个答案缺少一个重要的观点:"最近"以当前元素开始并向上移动,其中"父母"以父元素开始并向上移动. (59认同)
  • 是不是`.parents()`(而不是`.parent()`)检索*all*元素? (10认同)

ant*_*rat 14

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

.closest()

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

.父母()

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

来自jQuery 文档

  • 我想你在这里描述.parents() (13认同)