(Примечание: Этот вопрос был отредактирован день после того, как попросили, изменяя вопрос от примерно parent
к тому, о parents
[ обратите внимание на множественное число]. Какой вид имеет значение!)
Re ваш оригинальный вопрос о parent
(сингулярного) против closest
: parent
только поднимается на один уровень вверх. closest
начинается с текущего элемента (а не только из родителя) и продолжает поиск по предкам, пока не найдет совпадение (или закончится предками).
Re обновленному вопрос о parents
(множественное число) против closest
: Есть два отличия:
считается ли текущий элемент (это с closest
, это не с parents
).
Независимо от того, прекращается ли поиск с первым совпадением (это делается с closest
, это не с parents
).
От Вашего оригинальный вопрос:
С тегами я мог бы использовать либо $ (это) .closest ('тр'); или $ (this) .parent ('tr');
Нет, на самом деле. $(this).parent('tr');
вернет пустой объект jQuery, поскольку родительский элемент span
не соответствует селектору.
С вашего обновленный вопрос:
С тегами я мог бы использовать либо $ (это) .closest ('тр'); или $ (это) .parents ('tr');
Вы могли бы, при условии, что вашtr
не также в другом tr
(например, таблица, содержащая таблицу).Если это так, вы получите тот же результат. Но если у вас есть стол в таблице, с parents
вы получите несколько tr
s (все предка tr
элементов).
Рассмотрим эту структуру:
<div class="wrapper">
<div class="inner">
<p>Testing <span>1 2 3</span></p>
</div>
</div>
Если крючок click
на span
, это то, что мы вернемся из трех соответствующих методов:
$(this).parent('div')
- Пустой объект JQuery, родительский span
не является div
.
$(this).parents('div')
- объект jQuery с div
s в нем, «внутренние» и «оберточные» divs (в указанном порядке).
$(this).closest('div')
- объект jQuery с одинdiv
в нем, «внутренний» один.
Вот результат, если мы привязываем click
на span
и использовать span
как селектор:
$(this).parent('span')
- Пустой объект JQuery, родитель span
не span
.
$(this).parents('span')
- Пустой объект jQuery, span
не имеет предка span
s.
$(this).closest('span')
- объект jQuery с span
, который был нажат.
Информация о родителях, родителях, ближайших: http://markupjavascript.blogspot.in/2013/10/parent-parents-closest-what-is-difference.html –