2011-05-11 152 views
3

我遇到這樣的標記:jQuery選擇問題

<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像「帶班奇數或偶數」只使用一個選擇? 我不能只是簡單地使用$(「禮」),因爲李的可能還包含裏的

感謝

回答

1

類選擇

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

抓住所有李時珍與2類:

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

對不起,但我的意思是抓住奇怪的,甚至有一個選擇器.. – Fuxi 2011-05-11 19:01:42

+0

不會包括所有的李?或者在網頁上還有更多不想抓取的內容?在這種情況下$(「li.even,li.odd」) – 2011-05-11 19:02:57

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

這給一個鏡頭:

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

順便說一句,你應該爲你的標記使用小寫。

0

給你的第一UL A類或ID:

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

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

這隻能得到最高李的

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()來提高效率。

3

你不需要指出那些類;你可以簡單地寫

$('ul.Root > li') 

這將選擇所有<li>元素是<ul>Root類的直接孩子。
它不會選擇任何嵌套<li> s。

您可以使用任何您想要的類或ID選擇器來選擇父項<ul>