2015-12-03 49 views
0
<div class="test"> 
    <div class="test"> 
    <div class="test"> 
     Test Content 
    </div> 
    </div> 
</div> 

我想删除内部div的类测试。我能够用下面的代码做到这一点,但是在n级寻找更通用的方法。请指导我正确的方式来实现这一点。想要删除内部div的类当外部div和内部div具有相同的类

<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仍然没有工作。

感谢

+0

用'$尝试( “测试。测试”)removeClass( '测试');'。 – Saba

回答

2

这应该工作:

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

它得到了divtest类,这是另一种divtest类的直系后裔,并删除其类。

你也可以把它的功能:

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; 
} 
+0

它将从所有嵌套的div中移除类。对不起,如果我的问题不清楚。我想通过级别作为我想删除类的div的数量。在上面的情况下级别将是1.假设我有3级,我通过级别2它应该只删除级别2的级别测试.. –

+1

@PardeepDhingra请参阅我的编辑:) –

+0

对不起,这是行不通的。 –