jquery - 使用 jQuery 从无序列表中除当前 li 之外的所有 li 添加或删除类

标签 jquery css

这是我的 HTML 结构

<ul class="checklist">
    <li class="opaque"><a href="">Link</a></li>
    <li class="transparent"><a href="">Link</a></li>
    <li class="transparent"><a href="">Link</a></li>
</ul>

当我单击其中一个透明 li 内的 anchor 时,我想将其设置为不透明,并将 ul 内的所有其他 li 设置为透明

关于如何有效地做到这一点有什么想法吗?

最佳答案

你可以这样做:

$('document').ready( function(){
  $('ul.checklist').find('a').click( function(){
    $(this)
      .parent().addClass('opaque').removeClass('transparent')
      .siblings().addClass('transparent').removeClass('opaque');
  });
});

但是,如果您确实只表示两种永远不会同时出现的状态,那么为什么不只使用一个类,没有该类就代表第二种状态呢?然后你会得到这个:

$('document').ready( function(){
  $('ul.checklist').find('a').click( function(){
    $(this)
      .parent().addClass('opaque')
      .siblings().removeClass('opaque');
  });
});

关于jquery - 使用 jQuery 从无序列表中除当前 li 之外的所有 li 添加或删除类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4454543/

相关文章:

javascript - DOM 元素上的每个 Jquery - 插入数组错误

javascript - Jquery选择器-根据属性值获取元素

javascript - 如何根据父节点的类选择复选框?

html - 调整联系表中文本字段的宽度 7

html - css文本在响应式网站中垂直对齐

html - 为新的 html 菜单调整 css 文件

javascript - 加载然后换行但换行在 jQuery 中不起作用

javascript - 如果选择了另一个具有不同名称的单选按钮,如何取消选择该单选按钮

javascript - 打印 div 在 chrome 中不起作用并且没有将样式作为链接

css - AngularJS Material 设计 : Different colors for the active tab (using theme colors)