вопрос селектора jquery - PullRequest
3 голосов
/ 11 мая 2011

У меня есть эта разметка:

<UL>
    <LI class=odd>bla</LI>
    <LI class=even>bla</LI>
    <LI class=odd>bla</LI>
    <LI class=even>bla</LI>
    <LI class=odd>bla</LI>
    <LI class=even>bla</LI>
</UL>

мой вопрос: как я могу выбрать все списки, такие как «с нечетным ИЛИ классом», используя только один селектор? я не могу просто использовать $ ("li"), потому что li также может содержать li's

спасибо

Ответы [ 7 ]

4 голосов
/ 11 мая 2011

Используйте множественный селектор :

$('li.odd, li.even');
3 голосов
/ 11 мая 2011

Вам не нужно указывать эти классы;Вы можете просто написать

$('ul.Root > li')

Это позволит выбрать все <li> элементы, которые прямые дочерние элементы <ul> с классом Root.
Не выберетлюбые вложенные <li> с.

Вы можете выбрать родителя <ul>, используя любой селектор класса или идентификатора.

2 голосов
/ 11 мая 2011

Как сказал Ник Спайерс, но убедитесь, что вы добавили имя тега для эффективности

$("li.even") // selects only even class
$("li.odd")  // selects only odd class
$("li.even, li.odd") // selects both odd and even

Обратите внимание, если вы делаете селектор без имени тега и только класса.jQuery должен перебирать все элементы DOM, чтобы найти совпадения.если вы используете тэг, то jQuery будет использовать document.getElementsByTagname () для большей эффективности.

2 голосов
/ 11 мая 2011

Дайте этому шанс:

 $("li.odd, li.even")

Кстати, вы должны использовать строчные буквы для своих тегов.

2 голосов
/ 11 мая 2011

во-первых, вы захотите поменять теги на строчные, и поставить классы в кавычки.

<ul>
    <li class="odd">bla</li>
    <li class="even">bla</li>
    <li class="odd">bla</li>
    <li class="even">bla</li>
    <li class="odd">bla</li>
    <li class="even">bla</li>
</ul>

Затем вы можете выбрать их таким образом

$('li.odd, li.even') 

еще лучшеспособ ...

<ul id="theUl">
    <li class="odd">...</li>
    <li class="even">...</li>
    <li class="odd">...</li>
    <li class="even">...</li>
    <li class="odd">...</li>
    <li class="even">...</li>
</ul>

и

$('#theUl li')
1 голос
/ 11 мая 2011

селекторы класса

$("li.even") or $("li.odd")

Чтобы взять всех ли с одним из 2 классов:

$("li.even, li.odd")
0 голосов
/ 11 мая 2011

Дайте вашему первому ul класс или идентификатор:

<ul class="something">
</ul>

$('ul.something > li.even, ul.something > li.odd')

Это только получает самый высокий li's

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