Есть ли разница между $ ("# item1 # item2") и $ ("# item1> # item2")? - PullRequest
2 голосов
/ 08 июня 2011

Я просматривал код и обнаружил, что

$("#item1 #item2") and $("#item1>#item2")

используются взаимозаменяемо. Есть ли разница или это одно и то же?

Ответы [ 4 ]

5 голосов
/ 08 июня 2011

Оба совпадут

<div id="item1">
    <div id="item2">
    </div>
</div>

Но будет совпадать только первый

<div id="item1">
    <div>
        <div id="item2">
        </div>
    </div>
</div>

В первом выражении используется селектор потомок . Символ > во втором выражении является дочерним селектором . Оба являются стандартными селекторами CSS.

Однако, поскольку id s должен быть уникальным, оба являются слишком сложными. Вместо этого вы должны просто использовать $('#item2')

1 голос
/ 08 июня 2011

То же, что и селекторы CSS

#this #that

означает любое #that, являющееся дочерним по отношению к #this.

Где как

#this>#that

Значиттолько #that, который является прямым потомком #this.

Подробнее о селекторах потомков.

0 голосов
/ 08 июня 2011

> означает непосредственный , прямой дочерний элемент.

прямой

<div id="a">
    <div id="b">
    </div>
</div>

косвенный

<div id="a">
    <div>
        <div id="b">
        </div>
    </div>
</div>

См. Документацию: http://api.jquery.com/child-selector/

0 голосов
/ 08 июня 2011

Знак > означает «включать только элементы, которые являются прямыми потомками этого элемента».Поэтому, если вы хотите выбрать только дочерние узлы, являющиеся подузлами #item1, используйте его, в противном случае используйте первый вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...