jQuery父(),父母()和最近()函数之间的区别

我一直在使用jQuery。 我想使用parent()select器。 我也想出了closest()select器。 无法find它们之间的任何区别。 有没有? 如果是,什么?

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

closest()从DOM树中select与select器匹配的第一个元素。

parent()在DOM树上select一个元素。

parents()方法类似于parent()但selectDOM树中的所有匹配元素。

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

.parents().closest()方法类似,都是遍历DOM树的。 两者之间的差异虽然微妙,但却很重要:

.closest()

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

。父母()

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

.parent()

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

注意: .parents()和.parent()方法是相似的,只不过后者只在DOM树上传递一个单独的级别。 另外,$(“html”)。parent()方法返回一个包含文档的集合,而$(“html”)。parents()返回一个空集合。

这里是相关的线程:

两者之间的差异虽然微妙,但却很重要:

.closest()

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

。父母()

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

从jQuery 文档

$(this).parents('div').eq(0) $(this).closest('div')$(this).parents('div').eq(0)

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

 See http://jsfiddle.net/imrankabir/c1jhocre/1/ 

$(this).closest('div')$(this).parents('div').eq(0)