如果element的后代具有类x,则将类添加到元素的兄弟中,该兄弟具有类y的后代

时间:2015-05-06 17:06:02

标签: jquery

我想检查一个元素是否有一个具有某个类 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/


谢谢你的帮助!

2 个答案:

答案 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