Некоторое время я использую jQuery. Я хотел использовать parent()селектор. Еще я придумал closest()селектор. Не нашел между ними никакой разницы. Есть ли? Если да, то что?
В чем разница между parent(), parents()и closest()?
Некоторое время я использую jQuery. Я хотел использовать parent()селектор. Еще я придумал closest()селектор. Не нашел между ними никакой разницы. Есть ли? Если да, то что?
В чем разница между parent(), parents()и closest()?
Ответы:
closest()выбирает первый элемент, соответствующий селектору, вверх от дерева DOM. Начинается с текущего элемента и идет вверх.
parent()выбирает один элемент выше (на один уровень выше) дерева DOM.
parents()Метод аналогичен,parent()но выбирает все совпадающие элементы в дереве DOM. Начинается с родительского элемента и продолжается вверх.
.parents()(вместо .parent()) получение всех элементов?
из http://api.jquery.com/closest/
В .parents () и .closest () методы сходны в том , что они оба траверс вверх по дереву DOM. Различия между ними, хотя и тонкие, но существенные:
.closest ()
- Начинается с текущего элемента
- Перемещается вверх по дереву DOM, пока не найдет совпадение для предоставленного селектора
- Возвращенный объект jQuery содержит ноль или один элемент
.родители()
- Начинается с родительского элемента
- Перемещается вверх по дереву DOM к корневому элементу документа, добавляя каждый элемент-предок во временную коллекцию; затем он фильтрует эту коллекцию на основе селектора, если он указан
- Возвращенный объект jQuery содержит ноль, один или несколько элементов
.parent ()
- Учитывая объект jQuery, представляющий набор элементов DOM, метод .parent () позволяет нам искать родителей этих элементов в дереве DOM и создавать новый объект jQuery из соответствующих элементов.
Примечание . Методы .parents () и .parent () похожи, за исключением того, что последний перемещается только на один уровень вверх по дереву DOM. Кроме того, метод $ ("html"). Parent () возвращает набор, содержащий документ, тогда как $ ("html"). Parent () возвращает пустой набор.
Вот связанные темы:
Note.
The .parents() and .parent() methods are 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.
Различия между ними, хотя и тонкие, но существенные:
- Начинается с текущего элемента
- Перемещается вверх по дереву DOM, пока не найдет совпадение для предоставленного селектора
- Возвращенный объект jQuery содержит ноль или один элемент
- Начинается с родительского элемента
- Перемещается вверх по дереву DOM к корневому элементу документа, добавляя каждый элемент-предок во временную коллекцию; затем он фильтрует эту коллекцию на основе селектора, если он указан
- Возвращенный объект jQuery содержит ноль, один или несколько элементов
Из документации jQuery
Есть разница между обоими $(this).closest('div')и$(this).parents('div').eq(0)
В основном closestначинайте сопоставление элемента с текущего элемента, тогда как parentsначинайте сопоставление элементов с родительского (на один уровень выше текущего элемента)
See http://jsfiddle.net/imrankabir/c1jhocre/1/
parent()метод возвращает прямой родительский элемент выбранного. Этот метод проходит только один уровень вверх по дереву 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
$(this).closest('div')такое же, как $(this).parents('div').eq(0).