如何在li元素列表中添加和删除类?

时间:2012-01-27 08:06:50

标签: jquery

如果我有这样的li列表:

<ul>
<li>first </li>
<li>second</li>
<li>third</li>
<li>fourth</li>
</ul>

我如何在jquery中编写代码来向li元素添加一个类,比如说,首先没有将类添加到其他元素中?

我试过这个,但它当然会增加所有的li元素。

$(document).ready(function() {
$("ul li").click(function() {
if(!$("ul li").hasClass('active'))
{
$("ul li").addClass('active');
}
});

});

我希望能够将活动类仅添加到单击的li元素,并删除已添加活动的所有其他存在。我该怎么办?感谢

1 个答案:

答案 0 :(得分:5)

单程

$("ul li").click(function() {
  var $this = $(this); // reference to the clicked li
  if(!$this.hasClass('active'))
  {
    $this.addClass('active');
    $('ul li').not($this).removeClass('active');
  }
});

实例:http://jsfiddle.net/Xb9yx/

另一种方式

$("ul li").click(function() {
  var $this = $(this); // reference to the clicked li
  if(!$this.hasClass('active'))
  {
    $this.addClass('active').siblings().removeClass('active');
  }
});

实例:http://jsfiddle.net/d5Sde/

这一个可能有一百种方法可以达到同样的目的。