Статьи

Используйте jQuery $ .closest () против $ .parents ()

Поэтому я думаю, вам следует рассмотреть возможность использования $ .closest () вместо $ .parents () . Но сначала, как всегда, нужно знать, с чем вы имеете дело — ключевое различие между ними.

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

Этот jsperf показывает результаты скорости.

22-04-2013 12-09-37

Получить родительский контейнер с помощью $ .parents ()

Пример кода.

//remove handler
$('.btn.remove').on('click', _this.cache.$container, function(e)
{
     e.preventDefault();
     console.log('remove...');
     $(this).parents('li').first().remove();
});

Получить родительский контейнер, используя $ .closest ()

Пример кода.

 //remove handler
$('.btn.remove').on('click', _this.cache.$container, function(e)
{
     e.preventDefault();
     console.log('remove...');
     $(this).closest('li').remove();
});