2016-02-26 4 views
0

Что мне нужно сделать, это сопоставить все элементы, у которых есть 1 ребенок, который также имеет определенный класс. Я могу это сделать уже с:Найти div только с 1 элементом с определенным классом

$(this).children().length == 1 && $(this).children('.brclearer').length == 1 

Но есть ли лучший/лучший способ сделать это с помощью jquery?

+4

'если ($ (this) .children ('. brclearer'). length) 'Этого достаточно для этого. –

ответ

3

Я хотел бы предложить следующее:

$('.brclearer:only-child').parent(); 

Который будет найти все элементы с классом .brclearer, которые являются единственным ребенком своих родителей, а затем выберите родительский элемент из этих элементов.

Ссылки:

+0

Как можно сделать проверку, используя предоставленный вами фрагмент? Подобно '$ ('. Brclearer: only-child'). Parent(). Is (this)'? –

+0

Должен признаться, это выглядит хорошо, но я скопировал/вставлял его, и он не работает. Похоже, он должен, но он удаляет элемент, в котором даже нет класса .brclearer, тогда как исходное решение отлично работает ?? Я хотел бы отметить это как ответ. – Antony

+0

В этом вопросе нет упоминания о том, что вы делаете «* чек *», а только запрос «* сопоставить [соответствующие элементы] *». Энтони, это кажется невероятно маловероятным; можете ли вы показать («[mcve]») [JS Fiddle] (http://jsfiddle.net/) этого отказа? –

1

Может быть вы можете найти .brclearer элемент, а затем получить родителя, как это:

$('.brclearer').parent(); 

Или, если вам нужно .brclearer было использовать только ребенок only-child селектор

$('.brclearer:only-child').parent(); 
Смежные вопросы