2013-03-21 2 views
0

Если у меня есть следующий HTML, как использовать Jquery, чтобы выбрать только первые ребенок уровня и применять: не к нимКак выбрать все непосредственные ребенок: с не()

<div id="top"> 
    <span>select me</span> 
    <a>select me</a> 
    <div> 
     <span>not this</span> 
     <a>not this</a> 
    </div> 
    <div class="not-this">not this</div> 
</div> 

JQuery:

jQuery('#top>:not(.not-this)'); // errors due to the > 
jQuery('#top:not(.not-this)'); // selects the second level children. 

Он должен быть агностиком для тегов, используемых для детей.

Редактировать добавить: Также пробовал

jQuery('#top>*:not(.not-this)'); // selects the second level children. 
+0

Какую версию JQuery и что "ошибка" вы получаете с '>'? Ни один из результатов, на которые вы претендуете, должен работать, как вы заявляете. –

+0

@JamesMontagne Я только что повторил, и это не ошибка, но она все еще не делает то, что я хочу. – SystemicPlural

ответ

2

jQuery('#top>:not(.not-this)') фактически должны работать нормально. http://jsfiddle.net/Entxc/

Другой вариант заключается в следующем:

$("#top").children().not(".not-this") 

http://jsfiddle.net/Entxc/1/

+0

Ваша скрипка выбирает детей, я тоже не хочу. – SystemicPlural

+0

Вы говорите, что хотите выбрать детей первого уровня. Вот что это делает. –

+0

Проблема в том, что он также выбирает детей второго уровня - у них есть граница. Я хочу только детей первого уровня. – SystemicPlural

Смежные вопросы