2014-01-12 21 views
-1

我想知道如何解決一個問題。 例如,我們遇到:jquery插入類之前的所有元素

<li> 
    <a class="disabled"> 
</li> 
<li> 
    <a class="disabled"> 
</li> 
<li> 
    <a href ="http://..." class="active"> 
</li> 
<li> 
    <a class="disabled"> 
</li> 

如何管理使用jquery <a>之前類主動添加到<a>標籤種類的NewClass所有<a>,所以我們要去獲得

<li> 
    <a class="disabled NEWCLASS"> 
</li> 
<li> 
    <a class="disabled NEWCLASS"> 
</li> 
<li> 
    <a href ="http://..." class="active"> 
</li> 
<li> 
    <a class="disabled"> 
</li> 

回答

0

你'需要選擇父ulol,但我們假設它是LIST

// Get index of active link 
before = $(".LIST li a").index($("a.active")) 

// Add class to all links before active link 
for (var i = 0; i < before; i += 1) { 
    $(".LIST li a").eq(i).addClass("NEWCLASS"); 
} 

Here's a working fiddle

+0

謝謝你給幫助,我從劇本 「.LIST」 刪除,它完美地工作;) –

+0

@KordianWikliński的'for'循環也是不必要的。我可以問爲什麼沒有與我的答案去? – BenM

-1

你可以嘗試這樣的事情:

$("a.active").each(function(index) { 
    $(this).addClass("NEWCLASS"); 
}); 
+0

-1。這會將'.NEWCLASS'應用於''a.active'之後出現的'li> a'元素。 – BenM

3
$('a.active').parent().prevAll().children('a').addClass('NEWCLASS') 

Fiddle

+0

只是擺弄同樣的事情!很好,簡潔的答案 – jammykam

0
var activeAnchor = $('li a.active').parent().prevAll("li:has(a)").find('a.disabled').toggleClass('disabled active'); 

DEMO

相關問題