2014-01-12 20 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

相关问题