[英]add a div.class in a child, only when the parent does not have other div.class
i have a html code like this: 我有这样的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>
and i need to add a div only on those divs that dont have that "checkclass", so it will like this: 而且我只需要在没有该“ 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>
i tried with jquery something like: 我尝试用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>');
but still nothing, any ideas? 但还是一无所有,有什么想法吗?
Try something like: 尝试类似的方法:
$(".someclass").each(function(){
if(!$(this).find(".checkclass").length)
{
$(this).append("<div class='checkclass' />");
}
});
What you tried is getting all elements that not have the checkclass class. 您尝试过的是获取所有没有checkclass类的元素。 Not the DIV's that don't have a child with checkclass.
没有DIV的孩子没有checkclass。
Filter is a good solution for this: 过滤器是一个很好的解决方案:
$('div.someclass').filter(function() {
return $(this).children('div.checkclass').length === 0;
}).append('<div class="newclass"></div>');
http://jsfiddle.net/infernalbadger/GKgc9/ http://jsfiddle.net/infernalbadger/GKgc9/
Try this 尝试这个
$('.someclass').each(function(){
if(!$(this).find('.checkclass').length){
$(this).append('<div class="newclass">Test</div>');
}
});
$(':not .checkclass').closest('.someclass');
要么
$('.someclass').not( $('.checkclass').closest('.someclass') );
if (!$(someClass).hasClass(checkClass)) {
$(someClass).addClass(newClass);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.