jQuery: путаница в выборе - PullRequest
1 голос
/ 04 мая 2010

Что не так с этим селектором jQuery?

$("#masterHeaderMenu.masterHeaderMenuButton a:first")

Я собираюсь выбрать первый тег привязки, который является дочерним элементом элемента, класс которого "masterHeaderMenuButton", сам является дочерним элементом элемента со значением атрибута "id", равным "masterHeaderMenu" .

Разве я не могу сделать это в jQuery?

Ответы [ 3 ]

6 голосов
/ 04 мая 2010

Вам нужно дополнительное место, вот так:

$("#masterHeaderMenu .masterHeaderMenuButton a:first")

Без пробела #masterHeaderMenu.masterHeaderMenuButton ищет элемент, который имеет id="masterHeaderMeny" и class="masterHeaderMenuButton", а пробел говорит, что find class="masterHeaderMenuButton" является потомком #masterHeaderMeny, не тот же элемент.

Если вы хотите перейти на любое количество уровней, добавьте пробел, если вы хотите понизить только уровень, используйте >, это означает, что переходят только к непосредственным дочерним элементам. *

4 голосов
/ 04 мая 2010

Можно. Вам нужен пробел между первым элементом (ID) и вторым (классом):

$("#masterHeaderMenu .masterHeaderMenuButton a:first")

Ваш селектор искал элемент с ID "masterHeaderMenu" и CSS-класс "masterHeaderMenuButton".

0 голосов
/ 04 мая 2010

Нет необходимости указывать класс . если вы дадите ID имени в самом селекторе, то достаточно. Идентификатор может представлять отдельный HTML-элемент в документе. но класс может представлять группу HTML-элементов.

$("#masterHeaderMenu .masterHeaderMenuButton a:first")

этот селектор может занять время. тот же результат можно получить из этого кода $("#masterHeaderMenu a:first")

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