<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>
Updated Fiddle仍无效。
由于
答案 0 :(得分:2)
这应该有效:
$(function() {
$("div.test > div.test").removeClass("test");
});
它获得div
个test
,它是另一个div
类test
的直接后代,并删除了它的类。
你也可以把它变成一个功能:
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;
}