如果元素具有类,则添加类;如果没有,则将其删除

时间:2018-10-08 12:34:39

标签: jquery

当元素具有“活动”类(由bootstrap nav功能分配)时,我需要向其添加一个类,并在由bootstrap删除该元素时删除该类

我认为类似的方法会起作用,但那不会

if ($(".tree-parent > .tab-pane").hasClass("active")) {
    $(this).addClass("d-flex");
}
else {
    $(this).removeClass("d-flex");
}

编辑:正如我收到的一些评论中所建议的那样,问题在于该脚本仅在页面加载时运行,而不是在实际添加/删除“活动”类时才运行。 谢谢

1 个答案:

答案 0 :(得分:-1)

这应该做。

$(function ($) {
  const $el = $('.tree-parent > .tab-pane');

  var mutationObserver = new MutationObserver(function(mutations) {
    if ($el.hasClass('active')) {
      $el.addClass('d-flex');
    } else {
      $el.removeClass('d-flex');
    }
  });

  mutationObserver.observe($el[0], {
    attributes: true
  });
});

不要忘记检查是否选择了正确的元素。