jquery - 如何从 li 元素列表中添加和删除类?

标签 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');
}
});

});

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

最佳答案

单向

$("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/

这就是可能有一百种方法可以实现同一目标的方法之一。

关于jquery - 如何从 li 元素列表中添加和删除类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9030486/

相关文章:

javascript - AJAX 查询 |访问返回的对象数据

javascript - 在 javascript 中获取 css 高度

php - 做一个jQuery $.post() 到一个PHP Controller,然后在中间返回到View,然后使用$.get() 继续Controller

javascript - OpenLayers 矢量样式更改问题

javascript - Jeditable插件开发

javascript - Bootstrap Scroll Spy 不工作。仅显示主状态事件但向下滚动时不会更改为其他状态

javascript - 如何使用 jQuery 等待替换

javascript - Typeahead.js 远程调用限制

javascript - 如何使用 React Native 将cameraRoll asset uri保存到cloudinary?

javascript - Browserify - 找不到模块 'jquery'