jquery之前将类插入所有元素

时间:2014-01-12 14:59:48

标签: jquery html

我想知道如何解决问题。 例如,我们有:

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

如何使用jquery添加到<a>标记类NEWCLASS,用于<a>之前<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>

5 个答案:

答案 0 :(得分:3)

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

请参阅Fiddle

答案 1 :(得分: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

答案 2 :(得分:0)

您可以结合使用prev()children()

$('li a.active').parent().siblings().prev().children('a').not('.active').addClass('NEWCLASS');

jsFiddle Demo

答案 3 :(得分:0)

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

DEMO

答案 4 :(得分:-1)

您可以尝试这样的事情:

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