jquery选择器问题

时间:2011-05-11 18:59:58

标签: jquery jquery-selectors

我有这个标记:

<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>

我的问题:如何使用一个选择器选择所有lis,如“with class odd OR even”? 我不能简单地只使用$(“li”),因为li也可能包含li的

感谢

7 个答案:

答案 0 :(得分:4)

使用multiple selector

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

答案 1 :(得分:3)

你不需要编写这些课程;你可以简单地写一下

$('ul.Root > li')

这将选择<li>的所有<ul>元素<{1}},其中Root类为<li>
它不会选择任何嵌套的<ul>

您可以使用您想要的任何类或ID选择器选择父{{1}}。

答案 2 :(得分:2)

首先,您需要将标记更改为小写,并将您的类放在引号中。

<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')

答案 3 :(得分:2)

试一试:

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

顺便说一下,你应该使用小写标签。

答案 4 :(得分:2)

就像尼克斯皮尔斯所说,但请确保为效率添加标签名称

$("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()来提高效率。

答案 5 :(得分:1)

类选择器

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

用两个类中的任何一个来获取所有li:

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

答案 6 :(得分:0)

给你的第一个ul一个类或id:

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

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

这只获得最高的李