выбор родителя выбранного ребенка - PullRequest
0 голосов
/ 04 апреля 2011

Прежде всего, прости меня, если это лишний вопрос.Я думаю, вы согласитесь, что это достаточно сложный случай, чтобы разумно искать конкретно.

У меня есть HTML, который выглядит как

<li class='signature'>
    <span class='label'>Signature:</span>
    <div class='folding'>
        <span class='data'></span>
    </div>
</li>
<li class='issuer'>
    <span class='label'>Issuer:</span>
    <span class='data'></span>
</li>

и т. Д.используйте jquery для создания класса .addClass только для любого li, который содержит div класса «fold», но не для другого lis.Я уверен, что смогу сделать это, используя хитроумный оператор .each, но я вроде как чувствую, что должен быть способ сделать это, используя только селекторы jquery.Я дошел до

$('li > .moreclick').addClass("arrowable");

, но это, конечно, добавляет класс в span, а не в li.

Я застрял с .each?(и если да, то любые намеки на лучший способ сделать это было бы неплохо, но по общему признанию выходят за рамки вопроса).

Спасибо!

Ответы [ 6 ]

2 голосов
/ 04 апреля 2011

Если li всегда будет абсолютным родителем:

$("div.folding").parent().addClass("new-class")

В противном случае будет продолжаться поиск по иерархии, пока не будет найдено li:

$("div.folding").closest("li").addClass("new-class")

[править] Решение Диосласки намного приятнее.Держу мою здесь для справки.

2 голосов
/ 04 апреля 2011

Попробуйте следующее

$('li:has(.folding)').addClass("arrowable");

jQuery документация

0 голосов
/ 04 апреля 2011

Пожалуйста, попробуйте это:

$("li:has(div.folding)").addClass("new-class")

Это выберет именно тот элемент li, который является родителем divs с классом 'folding'.

0 голосов
/ 04 апреля 2011

Если вы хотите проверить только прямых детей li:

$('li:has(> div.folding)').addClass("arrowable");
0 голосов
/ 04 апреля 2011

попробуйте это.

$('li').has('.folding').addClass("arrowable");
0 голосов
/ 04 апреля 2011

например:

$('.folding').parent().addClass('arrowable');

// редактировать слишком медленно ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...