首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery条件类添加

Jquery条件类添加
EN

Stack Overflow用户
提问于 2021-06-09 04:20:46
回答 2查看 55关注 0票数 0

因此,我正在使用一些jQuery处理这个小前端项目--我想在有一个名称列表的地方做一些事情,如果单击它,应该添加一个" selected“类,但是如果选择了其他选项,我想删除这个类。因此,假设Name-1被选中,它会得到一个背景颜色变化,但是如果Name-2是在名称的背景色之后选择的-1应该离开并添加到Name-2,并且我有多个名称,所以我不能为每个选项创建一个函数。我想知道是否有更简单的方法。

HTML

代码语言:javascript
复制
 <ul class="names">
                    <li class="name selected">Name-1</li>
                    <li class="name">Name-2</li>
                    <li class="name">Name-3</li>
                </ul>

CSS

代码语言:javascript
复制
.selected {
    background-color: rgba(0, 0, 0, 0.3);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-09 04:38:23

你可以这样做:

代码语言:javascript
复制
$("ul.names li").on("click", function(){
   $("ul.names li").removeClass("selected");
   $(this).addClass("selected");
})

编辑-解释-您通过这个选择器ul.names li选择了所有的<li>标记,并一起操作它们,首先您从这个$("ul.names li").removeClass("selected");的所有li标记中删除selected类,然后将selected类添加到由this关键字表示的选择的li标记中。

代码语言:javascript
复制
$("ul.names li").on("click", function() {
  $("ul.names li").removeClass("selected");
  $(this).addClass("selected");
})
代码语言:javascript
复制
.selected {
  background-color: rgba(0, 0, 0, 0.3);
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="names">
  <li class="name selected">Name-1</li>
  <li class="name">Name-2</li>
  <li class="name">Name-3</li>
</ul>

票数 0
EN

Stack Overflow用户

发布于 2021-06-09 04:45:56

像这样的东西应该管用。

代码语言:javascript
复制
$('.name').on('click', function() {
  $('.name').removeClass('selected').css('background','none');
  $(this).addClass('selected').css('background',$(this).data('bg'));
});
$('.name.selected').css('background',$('.name.selected').data('bg'));
代码语言:javascript
复制
.selected {
  color: #fff;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="names">
    <li class="name selected" data-bg="green">Name-1</li>
    <li class="name" data-bg="red">Name-2</li>
    <li class="name" data-bg="blue">Name-3</li>
</ul>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67897558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档