jQuery - 在$(this)上切换类并删除所有其他类

时间:2016-08-18 21:47:38

标签: javascript jquery html css

这是我正在使用的jQuery代码段:

$('.panel-title').click(function(){
  $(this).find('.state').toggleClass('rotate');
});

更新 - 编辑小提琴以匹配我正在处理的更多内容

这是一个小提示,向您展示我在说什么 https://jsfiddle.net/ke1hwn7f/9/

我需要做的是来回切换课程。这是非常直接的前进。但我还需要设置它,以便如果该类已存在于元素上,我需要删除它。

所以在小提琴中你可以看到当你点击"这是标题4"它切换了" colorChange"类。但是你点击"这是标题2"我需要它来切换一个绿色,但也从#34中删除该类;这是标题4" (或者它可能存在的任何其他地方)希望在它切换刚刚点击的元素之前。

我有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

你去了:

$('.panel-title').click(function(){
  // If the clicked element has the rotate class, remove the rotate class from EVERY .panel-title>.state element
  if ($(this).find('.state').hasClass('rotate')){
    $('.panel-title').find('.state').removeClass('rotate');
  }
  // Else, the element doesn't have the rotate class, so we remove it from every element before applying it to the element that was clicked
  else {
    $('.panel-title').find('.state').removeClass('rotate');
    $(this).find('.state').addClass('rotate');
  }
});

如果有类,请将其删除到每个标题,否则将其删除,但将其添加到您点击的标题之后。