jQuery:如果单击其他元素,则删除类

时间:2012-10-02 08:44:35

标签: jquery addclass toggleclass

我有一个包含li元素的ul列表。当用户单击其中一个li元素时,应该将一个类添加到该元素中。

这很容易设置,但是,当单击其他li元素时,我希望从非活动li中删除“active”类。

我已经解决了这个问题: http://jsfiddle.net/tGW3D/

任何时候都应该有一个红色的li元素。如果单击第二个然后单击第一个,则只有第一个应为红色。

10 个答案:

答案 0 :(得分:52)

这将从每个具有活动状态的li中删除活动类,并将其添加到单击的元素中。

$('body').on('click', 'li', function() {
      $('li.active').removeClass('active');
      $(this).addClass('active');
});

答案 1 :(得分:18)

您可以使用siblingsremoveClass方法。

$('li').click(function() {
    $(this).addClass('active').siblings().removeClass('active');
});

http://jsfiddle.net/Lb65e/

答案 2 :(得分:5)

首先删除.active的所有实例,然后添加它:

$('ul li').on('click', function() {  
    $('ul li.active').removeClass('active');
    $(this).addClass('active');    
});

答案 3 :(得分:2)

$('li').click(function() {
  $(this).siblings().removeClass('active');
  $(this).addClass('active');
});

检查: http://jsfiddle.net/tGW3D/2/

答案 4 :(得分:2)

这样的东西?

http://jsfiddle.net/c7ZE4/

您可以使用兄弟姐妹功能。 addClass返回相同的jquery对象$(this),因此您可以链接siblings方法,该方法返回除$(this)之外的所有其他元素。

 $('li').click(function() {
  $(this).addClass('active').siblings().removeClass('active');
 });

答案 5 :(得分:1)

 $('li').click(function() {
      $(this).addClass('active'); // add the class to the element that's clicked.
      $(this).siblings().removeClass('active'); // remove the class from siblings. 
});

如果您知道jquery,可以像下面一样链接它。

 $('li').click(function() {
      $(this).addClass('active').siblings().removeClass('active'); 
});

以上代码将为您解决问题。 Try this demo

答案 6 :(得分:0)

<link href="css\linking14.css" rel="stylesheet" type="text/css">

答案 7 :(得分:0)

const props = {
numbers: [
        { name: 'max', num: 3, inCart: false },
        { name: 'jack', num: 2, inCart: true },
        { name: 'jack', num: 2, inCart: true }
    ]
}
console.log(
  props.numbers
    .filter(item => item.inCart)
    .reduce((acc, cur) => acc + cur.num, 0)
)

此jquery代码可能会有所帮助。 不要忘记添加Jquery CDN

答案 8 :(得分:0)

您可以使用以下代码:

req.session.destroy()

答案 9 :(得分:-1)

您可以通过以下代码更改css类:

$('li').click(function() {
    $(this).addClass('active').siblings().removeClass('active'); 
});

链接到jsfiddle