Использование вами
.parents('tr').first()
выдержит изменения в DOM, когда элемент с обработчиком станет более глубоко вложенным.
В этом случае я бы предпочел использовать
.parents('tr:first')
Другой упомянутый ответ closest('tr')
.Это действительно сложность между ними.
Некоторым нравится использовать .parents()
, потому что его имя более наглядно описывает то, что он делает.Но вы должны знать, что он даст более одного результата, если будет найдено несколько совпадений.Вот где вам нужно .first()
или :first
, чтобы получить только первый.
Между .closest()
и .parents()
производительность зависит от браузера.В некоторых быстрых тестах я обнаружил, что IE нравится .parents()
лучше, а FF и Webkit - .closest()
лучше.