Si l'élément parent ne contient pas un certain élément enfant; jQuery
<div class="test">
<div class="example"></div>
</div>
<div class="test">
</div>
Comment appliquer jQuery à un élément de la classe test
seulement s'il ne contient pas un élément enfant de la classe example
?
15
demandé sur
UserIsCorrupt
2012-04-16 07:03:53
8 réponses
$('.test:not(:has(.example))')
-ou-
$('.test').not(':has(.example)')
32
répondu
vol7ron
2012-04-16 03:24:31
possible
$('.test').filter(function() { return !$(this).children('.example').length; });
cela filtre tous les éléments qui ont un enfant qui correspond à .example
. Si vous voulez filtrer basé sur les descendants (pas seulement les enfants) que vous pouvez remplacer .find
par .children
.
4
répondu
Jon
2012-04-16 03:09:25
$(':not(.test:has(.example))').css('color', 'red');
2
répondu
Andreas Wong
2012-04-16 03:19:33
ce problème semble prêt pour la fonction filter
où vous trouverez tous les objets .test
et puis lors du filtrage ne retiennent que ceux qui n'ont pas .example
en eux:
$(".test").filter(function() {
return($(this).find(".example").length == 0);
});
2
répondu
jfriend00
2012-04-16 04:35:25
jQuery contains()
:
jQuery.contains(document.documentElement, document.body); // true
jQuery.contains(document.body, document.documentElement); // false
1
répondu
Marc
2012-04-16 03:08:50
$('.test').each(function() {
if(!$(this).children().hasClass("example")){
//your code
}
});
peut-être comme ça? Je n'ai pas testé cette...
1
répondu
hjuster
2012-04-16 03:17:07
if (!$('#yourDiv').children().hasClass("className")) {
//i.e. yourDivID' has no any children whose class name =>'className'
}
-1
répondu
Shekhar Kadam
2018-05-24 12:37:54