使用jQuery交换元素类

时间:2011-01-06 15:32:08

标签: jquery

我有一个元素:

...
<li class="products active"><a href="" title="Title">test</a></li>
...

我想访问此“li”标记并将“active”类交换为“past”类 所以最终结果将是:

...
<li class="products past"><a href="" title="Title">test</a></li>
...

使用jQuery实现此目的的最简单/最有效的方法是什么?

6 个答案:

答案 0 :(得分:5)

use toggleClass()更加简单,假设元素已经有一个或另一个。

只要给它两个类名:

$('.active').toggleClass('past active');

如果它有active(因为这是它的选择方式),它的active类将被删除,并且past类将被添加。

如果你在点击处理程序中执行此操作,它可能如下所示:

$('.products').click(function() {
    $(this).toggleClass('past active');
});

示例: http://jsfiddle.net/TCvQU/

答案 1 :(得分:4)

$("li.active").removeClass("active").addClass("past");

答案 2 :(得分:1)

您需要修改选择器,以便只抓取正确的li(s) ...

$('li').removeClass('active').addClass('past');

也许是$('li.active');

答案 3 :(得分:1)

使用您当前的标记,您可以执行以下操作:

$('li.active').removeClass('active').addClass('past');

但是,如果要更改特定的列表项元素,则需要以某种方式识别它。也许是这样的:

<li class="products active" id="item1">..</li>

然后你可以这样做:

$('#item1').removeClass('active').addClass('past');

答案 4 :(得分:1)

$('.active').addClass('past').removeClass('active')

答案 5 :(得分:-1)

我同意所有三个答案。以上是我们不知道你是在运行纯粹的JQuery还是作为CMS的一部分,可能需要更换标签。