2014-12-23 2 views
0

У меня есть код, который генерируется некоторым Javascript (я не хочу его корректировать, это огромный!). В качестве обходного пути я могу добиться того, что хочу с помощью JQuery и CSS, просто не знаю, как это сделать.Найти класс, добавить класс к родительскому (li)

У меня есть несколько точек пули, я хочу, чтобы найти весь пролет с классом bubble-lorem, я тогда хочу добавить класс к родителю li называется price. Я думаю, что Jquery делает это, но не уверен, как его достичь.

Вторая часть вопроса, когда он добавляется класс price всех правильных li-х, я хочу, чтобы добавить класс clear к следующему li после него. Так, например, если в строке было 3 <li class="price">, я хочу найти следующий li после последнего <li class="price"> и добавить к этому класс?

<li> 
    <span style="margin-left: 0px; width: 240px;" class="bubble bubble-default" data-duration="18"></span> 
    <span class="date">01/2015-12/2016</span> 
    <span class="label">Phase 1</span> 
</li> 

<li> 
    <span style="margin-left: 30px; width: 30px;" class="bubble bubble-lorem" data-duration="2"></span> 
    <span class="date">04/2015-06/2015</span> 
    <span class="label">£0.8</span> 
</li> 

ответ

2

Оба ваши запросы могут быть достигнуты с остротами:

$('.bubble-lorem').closest('li').addClass('price'); 
$('.price').next('li:not(.price)').addClass('clear'); 
0

Часть I: Вы должны использовать :has селектор:

$('li:has(.bubble-lorem)').addClass('price'); 

Часть II:

$('.price').next('li:not(.price)').addClass('clear'); 

Working Demo

+2

Вы не хотите, чтобы это ... просто использовать селектор класса. –

0

В первой части вашего вопроса:

// This finds all elements with 'bubble-lorem' class and 
// adds 'price' class to their parents 
$(".bubble-lorem").parent().addClass("price"); 

Для второй части Вашего вопроса:

// This finds the elements with 'price' class whose next li does not have 
// 'price' class (which will be the last element) and adds 'clear' class to it 
$('.price').next('li:not(.price)').addClass('clear'); 
0

Try это:

$('.bubble-lorem').parent('li').addClass('price'); 
$('.price').last().next().addClass('clear'); 
0

Ответ 1:

$("span.bubble-lorem").parent().addClass('price'); 

Ответ 2:

$("li.price").next().addClass('clear'); 
Смежные вопросы