Вы можете использовать селектор :first
, чтобы выбрать только первый соответствующий элемент .block
:
$('.block:first')
Это работает, потому что jQuery сопоставляет элементы в порядке документов. Самый внешний элемент .block
будет первым элементом, которому соответствует .block
, а :first
отфильтрует, чтобы вернуть только его.
Обратите внимание, что :first
отличается от :first-child
.
РЕДАКТИРОВАТЬ : В ответ на ваше обновление вы можете написать следующее, которое будет работать, только если все элементы вложены три глубины:
$('.block:note(:has(.block .block))')
Вы можете написать более надежное решение, используя вызов функции:
$('.block').not(function() { return $(this).closest('.block').length; })
Это найдет все элементы .block
, а затем удалит все совпадающие элементы, у которых есть предок, соответствующий .block
. (Вы можете заменить closest
на parent
, если хотите).