javascript - 如何在每次点击时添加然后删除外部 div 上的类

标签 javascript jquery addclass removeclass

如果 li a 项的 iddiv 项 a 的类匹配,则要添加 class "每次点击时的主题”。

如果 li a 项目的 iddiv 项目的类不匹配,则 a 想要从非项目中删除“主题”类匹配 div。

但它只会在每次点击时添加类,但不会删除类。有什么建议吗?

<ul class="funding-theme">   
  <li data-rel="all"><a class="sub active" id="all" href="javascript:void(0)">All</a></li>
  <li><a class="sub" id="education" href="javascript:void(0)">Education</a></li>
  <li><a class="sub" id="healthcare" href="javascript:void(0)">Healthcare</a></li>
  <li><a class="sub" id="justice" href="javascript:void(0)">Justice</a></li>
</ul>

<div class="list left">
  <div class="non_profit all education"></div>
  <div class="non_profit all education"></div>
  <div class="non_profit all justice"></div>
  <div class="non_profit all healthcare"></div>
</div>

<script>

  var $sub  = $(".sub");

  $sub.click(function(e){

    if (e.target.id == "all") {
      //alert("#" + $(this).attr('id') + "");

      $("."+$(this).attr('id')).removeClass('theme');
    } else if (e.target.id == $(this).attr('id')) {
      alert("#" + $(this).attr('id') + "");

      $("."+$(this).attr('id')).removeClass('theme');
      $("."+$(this).attr('id')).addClass('theme');
    }
  });

</script>

最佳答案

试试这个

$('.sub').click(function (e) {
var id = ($(this).attr("id"));    
    $('.list').find('div').each(function(){
        if($(this).hasClass(id))
        {            $(this).addClass('theme');
        }else
        {
            $(this).removeClass('theme');
        }
    });
});

Fiddle Demo

关于javascript - 如何在每次点击时添加然后删除外部 div 上的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23196711/

相关文章:

javascript - jQuery 为每个项目追加

javascript - 使用 Backbone 在我看来加载模块的最佳方式?

javascript - 用于文本区域和自由文本的 Facebook jQuery 自动完成插件

jquery - 通过 jQuery 添加页面标题作为主体类

javascript - 包含 Div 的部分的 jQuery 选择器

javascript - 重载后焦点输入

javascript - 尝试使用 subString 和 indexOf 从文本中获取 <img> 标签

javascript - 使用 hapi 编码的 API

Jquery 删除类多个元素

javascript - 将类添加到动态添加的元素