Учитывая это:
<div id="div1">
<div id="div2">
<div id="div200">
<div id="div3" class="b">
</div>
<div id="div300">
<div id="div4" class="b">
<div id="div5">
<div id="div6" class="b">
</div>
</div>
</div>
<div>
<div>
<div>
</div>
Мне нужен способ найти детей (глубину) элемента, которые имеют класс "b", но не те, которые вложены внутри согласованного элемента.
Тестовые случаи:
Это то, что мне нужно:
Случай 1:
$("#div1").some_jquery_syntax(".b")
Should return:
div3, div4
Случай 2:
$("#div5").some_jquery_syntax(".b")
Should return:
div6
Обратите внимание, что сложная часть заключается в том, что мне нужно пропустить div2 при запуске с div1. Поэтому я не могу просто использовать $("#div1").find("> .b")
.
Мои попытки:
Я пробовал это:
$("#div1").find(".b")
[<div id="div3" class="b"></div>, <div id="div4" class="b"></div>, <div id="div5" class="b"></div>]
Нехорошо: я не хочу div5, потому что он вложен внутри div4.
Я пробовал это:
$("#div0").find(".b").not(".b .b")
[<div id="div3" class="b"></div>, <div id="div4" class="b"></div>]
Это нормально, когда вы начинаете с div0, но он не работает из div4:
$("#div5").find(".b").not(".b .b")
[]