我有一个像这样的HTML代码:
<div class="someclass">
<div class="childclass"></div>
<div class="checkclass"></div>
</div>
<div class="someclass">
<div class="childclass"></div>
</div>
<div class="someclass">
<div class="childclass"></div>
<div class="checkclass"></div>
</div>
<div class="someclass">
<div class="childclass"></div>
<div class="checkclass"></div>
</div>
<div class="someclass">
<div class="childclass"></div>
</div>
我需要在那些没有“checkclass”的div上添加div,所以它会这样:
<div class="someclass">
<div class="childclass"></div>
<div class="checkclass"></div>
</div>
<div class="someclass">
<div class="childclass"></div>
<div class="newclass"></div>
</div>
<div class="someclass">
<div class="childclass"></div>
<div class="checkclass"></div>
</div>
<div class="someclass">
<div class="childclass"></div>
<div class="checkclass"></div>
</div>
<div class="someclass">
<div class="childclass"></div>
<div class="newclass"></div>
</div>
我尝试使用jquery之类的东西:
$('.someclase:not(children(hasClass(checkclass))').append('<div class="newclass"></div>');
$('.someclass:not(:children(.checkclass))').append('<div class="newclass"></div>');
$('.someclass > :not(.checkclass)').append('<div class="newclass"></div>');
但仍然没有任何想法?
答案 0 :(得分:4)
尝试类似:
$(".someclass").each(function(){
if(!$(this).find(".checkclass").length)
{
$(this).append("<div class='checkclass' />");
}
});
您尝试的是获取没有checkclass类的所有元素。不是没有带有支票类的孩子的DIV。
答案 1 :(得分:0)
Filter是一个很好的解决方案:
$('div.someclass').filter(function() {
return $(this).children('div.checkclass').length === 0;
}).append('<div class="newclass"></div>');
答案 2 :(得分:0)
试试这个
$('.someclass').each(function(){
if(!$(this).find('.checkclass').length){
$(this).append('<div class="newclass">Test</div>');
}
});
答案 3 :(得分:0)
$(':not .checkclass').closest('.someclass');
或
$('.someclass').not( $('.checkclass').closest('.someclass') );
答案 4 :(得分:-1)
if (!$(someClass).hasClass(checkClass)) {
$(someClass).addClass(newClass);
}