2012-01-02 40 views
2

我一直在爲此擱置一會兒而找不到解決方案。將ul的li文本與一個主ul進行比較,並將它應用到不同的li上

我首先希望能夠做到這一點jQuery的...

我試圖做的是比較每個UL與第一UL的第一里找到任何差異和應用樣式到每個具有不同文本/字符串的li。然後按照每個ul的第二個li,第三個li的順序對李的其餘部分執行相同的操作。

我的標記無類(我不想使用類使用jQuery選擇)的UL二號

<ul> 
    <li>red</li> 
    <li>blue</li> 
    <li>green</li> 
    <li>yellow</li> 
    <li>black</li> 
</ul> 

<ul> 
    <li>red</li> 
    <li>blue</li> 
    <li>red</li>  <----this one 
    <li>yellow</li> 
    <li>black</li> 
</ul> 

<ul> 
    <li>green</li>  <----this one 
    <li>blue</li> 
    <li>green</li> 
    <li>yellow</li> 
    <li>black</li> 
</ul> 

,我想添加第三李一類給它,原因是其具有不同的字符串相比於ul號1.

這是可能的,而不需要向每個鋰添加一個類?

回答

-1

下面是另一種解決方案。我只是抓住第一個ul並把它當作主人,儘管如果你喜歡,你可以通過class或id來識別主人。然後,我將所有其他人與主人比較,並向不匹配的人添加一個班級,以便您可以隨心所欲地創建這些班級。

http://jsfiddle.net/ZpFrr/

+0

不錯!我一直試圖讓代碼運行在一個div內,但它似乎總是拿起頁面上的第一個ul ... 你不會知道一種方法,使其只能比較一個div內,然後重置時該div關閉,以便可以在另一個div上運行?我嘗試在 $('div')。each(function(){ }); 例如。

2012-01-03 15:11:37

+0

使用標記類名稱來驅動它可能更「安全」,因此您沒有意外匹配,但是這是一個修訂版,可以根據標記名稱和結構使其保持正常工作狀態。 http://jsfiddle.net/sqLym/。關於'master'數組以及它如何爲每個傳遞工作的一點是基於範圍和JavaScript的閉包。 – Lawrence 2012-01-03 20:44:56