2014-12-23 52 views
0

我有一些代碼是由一些JavaScript生成的(我不想調整它,它是巨大的!)。作爲一種解決方法,我可以通過Jquery和CSS實現我想要的功能,但不知道如何去做。查找類,添加類到父(li)

我有幾個要點,我想找到類bubble-lorem的所有跨度,然後我想添加一個類到父li調用price。我認爲Jquery這樣做,但不知道如何實現它。

問題的第二部分,一旦它添加了類price所有正確的li的,我想後,一類clear添加到下一li。例如,如果連續有3個<li class="price">,我想在最後一個<li class="price">之後找到下一個li,並向該類添加一個類?

<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

第一部分:您需要使用:has選擇:

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

第二部分:

$('.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

嘗試這個:

$('.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');