在LI点击时更改类
change class on LI click
本文关键字:LI 更新时间:2023-09-26
我需要定期将一个.selected类分配给我单击的元素,并删除之前分配给单击的元素的任何其他类,这样我就可以更改CSS类。也许这个代码:
$(this).click(function(){
$(this).addClass('selected');
});
工作,但如果我点击任何其他李会发生什么?有人帮我做这项工作吗?
编辑:好的,看看这个代码:
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
默认情况下,没有任何类,但我点击项目2,然后HTML应该在这个上转换:
<ul>
<li>Item 1</li>
<li class="selected">Item 2</li>
<li>Item 3</li>
</ul>
但是,如果我再次点击第3项,那么HTML应该在这一项上转换:
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li class="selected">Item 3</li>
</ul>
这就是我尝试做的
我建议:
$(selector).click(function(){
$('.selected').removeClass('selected');
$(this).addClass('selected');
});
关于moonwave99留下的注释(如下),如果您只想从同一parent
元素中包含的元素中删除selected
类名:
$(selector).click(function(){
var that = $(this);
that.parent().find('.selected').removeClass('selected');
that.addClass('selected');
});
尽管值得记住的是,您正在单击哪个元素,以及父元素将是什么,例如,单击以下HTML中的a
:
<ul>
<li><a href="#">link text</a></li>
</ul>
将在li
中查找其他.selected
元素,因此您应该使用:
$(selector).click(function(){
var that = $(this);
that.closest('ul').find('.selected').removeClass('selected');
that.addClass('selected');
});
首先从ul内的所有li中删除所选类,然后将类应用于单击的li。
$('ul li').click(function(){
$('ul li').removeClass('selected');
$(this).addClass('selected');
});
在我的旅行中,我发现在使用引导程序时,不可能添加'active'的class来列出中的项目。所以,如果你正在阅读这篇文章(就像我一样),想知道为什么当类名是"活动的"时,这不起作用,你需要选择其他东西。
相关文章:
- 没有找到相关文章