Разница между функциями jQuery parent(), parent() и closeest()

Я использую jQuery некоторое время. Я хотел использовать селектор parent(). Я также придумал селектор closest(). Невозможно найти разницу между ними. Есть ли? Если да, то что?

В чем разница между parent(), parents() и closeest()?

Ответ 1

closest() выбирает первый элемент, соответствующий селектору, вверх из дерева DOM.

parent() выбирает один элемент в дереве DOM.

parents() метод похож на parent(), но выбирает все сопоставление элементов с деревом DOM.

Ответ 2

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

Методы .parents() и .closest() аналогичны тем, что они оба пересечь дерево DOM. Различия между ними, хотя тонкие, значительны:

.closest()

  • Начинается с текущего элемента
  • Перемещает дерево DOM до тех пор, пока не найдет совпадение для поставляемого селектор
  • Возвращенный объект jQuery содержит нуль или один элемент

.parents()

  • Начинается с родительского элемента
  • Перемещает дерево DOM в корневой элемент документа, добавляя каждый элемент предка во временную коллекцию; он затем фильтрует сбор на основе селектора, если он поставляется
  • Возвращенный объект jQuery содержит нулевой, один или несколько элементов

.parent()

  • Учитывая объект jQuery, который представляет собой набор элементов DOM,.parent() позволяет нам искать родителей этих элементов в дереве DOM и построить новый объект jQuery из соответствующие элементы.

Примечание.. Методы .parents() и .parent() аналогичны, за исключением того, что последний только перемещается на один уровень вверх по дереву DOM. Также, $( "html" ). Метод parent() возвращает набор, содержащий документ, тогда как $( "html" ). parent() возвращает пустой набор.

Вот связанные темы:

Ответ 3

Различия между двумя, хотя и утонченными, значительны:

. closeest()

  • Начинается с текущего элемента
  • Перемещает дерево DOM до тех пор, пока не найдет совпадение для поставляемого селектора
  • Возвращенный объект jQuery содержит нуль или один элемент

. родители()

  • Начинается с родительского элемента
  • Перемещение дерева DOM в корневой элемент документа, добавление каждого элемента предка во временную коллекцию; он затем фильтрует эту коллекцию на основе селектора, если один из них поставляется
  • Возвращенный объект jQuery содержит нулевой, один или несколько элементов

Из jQuery docs

Ответ 4

Существует разница между $(this).closest('div') и $(this).parents('div').eq(0)

В принципе closest начинает сопоставлять элемент с текущим элементом, тогда как parents начинает сопоставлять элементы из родителя (на один уровень выше текущего элемента)

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

Ответ 5

$(this).closest('div') совпадает с $(this).parents('div').eq(0).