javascript - 当外部div和内部div具有相同的类时想要删除内部div的类

标签 javascript jquery

<div class="test">
  <div class="test">
    <div class="test">
       Test Content
    </div>
  </div>
</div>

我想删除内部div的类测试。我可以用下面的代码来做到这一点,但寻找更通用的 n 级方法。请指导我实现这一目标的正确方法。

<script>
  $(document).ready(function(){
    // this will delete class test of level 1
    $($(".test")[1]).removeClass('test');
    //or
    // this will delete class test of level 2
    $($(".test")[2]).removeClass('test');
  });
</script>

Fiddle

Updated Fiddle仍然无法工作。

谢谢

最佳答案

这应该有效:

$(function() {
  $("div.test > div.test").removeClass("test");
});

它获取一个带有 test 类的 div,它是另一个带有 test 类的 div 的直接后代,并删除它的类。

您还可以将其设为函数:

function removeDuplicateClass(cls) {
    return $("div." + cls + " > div." + cls).removeClass(cls).length;
}

编辑:看到编辑后,这应该可以工作

function removeDuplicateClass(cls, level) {
  // get all top level divs with that class
  var parent = $("div." + cls).filter(function () {
    return !$(this).parent().is("div." + cls);
  });

  // build selector
  var selector = [];
  for (var i = 0; i < level; ++i) {
    selector.push("> div." + cls);
  }

  // now remove class
  return $(selector.join(" "), parent).removeClass(cls).length;
}

关于javascript - 当外部div和内部div具有相同的类时想要删除内部div的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34063491/

相关文章:

javascript - jQuery - 最后一张幻灯片的间隔未执行 - 动画故障

jquery - 滚动条滚动的步骤(html/css/jquery)

javascript - 具有输入类型范围问题的 Sweet alert 2 模态

javascript - AngularJS 提示没有为 jquery 定义初始化

javascript - 选择框值未在引导模式上设置

javascript - 使用 jquery 创建带有 div 的框

javascript - 创建 FollowMe 链接 SoundCloud

javascript - 如何从 select2 关闭按钮获取最接近的 id?

javascript - 如果未启用cookie,如何显示错误消息?

javascript - 更新 knockout 可观察数组无法更新剑道多选控件