parent vs parentNode - PullRequest
       8

parent vs parentNode

9 голосов
/ 30 марта 2012

Есть ли разница между следующими селекторами:

var index = $(this).parent().index();
var index2 = $(this.parentNode).index();

Из того, что я прочитал, parentNode широко поддерживается.

Есть ли причина использовать один над другим?

Ответы [ 2 ]

9 голосов
/ 30 марта 2012

Селектор jQuery .parent() выбирает непосредственного родителя всех узлов в наборе узлов.Однако, поскольку в вашем примере набор узлов - это всего лишь один узел $(this), практическая разница невелика.

Эта разница имеет значение, если бы вы делали что-то вроде $(".foo").parent(), где может быть много узлов,класс foo.

4 голосов
/ 30 марта 2012

parentNode - это собственный JS, где parent () - нет.

То, что вы делаете в своем коде - это оборачивание элементов DOM в объект jQuery, чтобы вы могли вызывать для него специфичные для jQuery методы.Таким образом, вы не можете вызвать index () только для this.parentNode, но вы можете вызвать его для $ (this.parentNode) .index (), поскольку он стал объектом jQuery.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...