我想检查一个元素是否有一个具有某个类 X Y的后代。如果是这样,我想检查该元素的兄弟姐妹,看看他们是否有一个带有类的后代< del> Y Z.如果是这样,我想用带有类 Y Z的后代为该兄弟添加类。(编辑:在此段中使用了错误的类名;更改了X到Y和Y到Z.)
HTML:
<div class="x">
<div>
<p class="y">Y</p>
</div>
</div>
<div class="x">
<div>
<p class="z">Z</p>
</div>
</div>
jQuery的:
$('div').each(function(){
if($(this).find('.y')){
$(this).siblings('div').find('.z').closest('div').addClass(abc);
}
});
这是一个小提琴:
http://jsfiddle.net/7m02oyjq/
谢谢你的帮助!
答案 0 :(得分:0)
Whaaaaaaaaat?洛尔
var $firstDescendent = $(this).find('.classOne');
if ($firstDescendent.length > 0) {
var $secondDescendent = $firstDescendent.find('.classTwo');
if ($secondDescendent.length > 0) {
....
}
}
或者你可以将它们连在一起
$(this).find('.classOne').find('.classTwo')[wash rinse repeat].dowhateveroperation();
Bah,或者也可以缩写
$(this).find('.classOne .classTwo .anotherClass .howeverDeepYouWantToGo').dowhateveroperation();
答案 1 :(得分:0)
我认为这就是你想要的
$('div.outer > .x').not(':has(.y)').siblings(':has(.y)').addClass('someClass');
的 DEMO 强>