我有一个包含li元素的ul列表。当用户单击其中一个li元素时,应该将一个类添加到该元素中。
这很容易设置,但是,当单击其他li元素时,我希望从非活动li中删除“active”类。
我已经解决了这个问题: http://jsfiddle.net/tGW3D/
任何时候都应该有一个红色的li元素。如果单击第二个然后单击第一个,则只有第一个应为红色。
答案 0 :(得分:52)
这将从每个具有活动状态的li中删除活动类,并将其添加到单击的元素中。
$('body').on('click', 'li', function() {
$('li.active').removeClass('active');
$(this).addClass('active');
});
答案 1 :(得分:18)
您可以使用siblings
和removeClass
方法。
$('li').click(function() {
$(this).addClass('active').siblings().removeClass('active');
});
答案 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');
});
答案 4 :(得分:2)
这样的东西?
您可以使用兄弟姐妹功能。 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