2011-11-30 65 views
-2

我有一組元素,點擊時,我想改變顏色。現在,我爲它們中的每一個分配一種顏色(即,如果它是列表中的第一個顏色,那麼這個顏色,如果是第二個顏色,則是另一種顏色......),但是如何檢查它們是哪一個?就像,如果我點擊第三個,我怎麼知道這是第三個?有沒有一個JavaScript方法,甚至是一個jQuery方法?在Javascript中獲取元素 - 但文檔中的元素是什麼?

感謝

+1

請出示你的HTML的一個樣本。 – jfriend00

回答

1

jQuery有一個.index()方法,應該做你想做的。

例子:http://jsfiddle.net/au2fQ/


HTML

<ul id="Test"> 
    <li>Click Me</li> 
    <li>Click Me</li> 
</ul> 
<ul id="Test2"> 
    <li>Click Me 2</li> 
    <li>Click Me 2</li> 
</ul> 

JS

$('li', '#Test,#Test2').click(function(){ 
    var i = $(this).index(), 
     k = $(this).index('li'); 
    alert('This is li '+i+' in the ul. This is li '+k+' in the page.'); 
}); 
+0

謝謝,你的例子使一切都清楚。 – KerrM

+0

不客氣。很高興我能幫上忙。 –

4

如果他們的兄弟姐妹:

$(this).index(); 

這將返回一個基於0的索引,因此第三個是2

如果他們沒有兄弟姐妹,緩存設置:

var els = $('.my_group_of_elements'); 

那麼做到這一點:

els.index(this); 
+0

感謝您的回答。我最終使用$(this).index('canvas');但我會記住你的答案,以防將來需要使用它! – KerrM

+1

@KerrM:不客氣。請記住,$(this).index('canvas');'會每次爲所有'canvas'元素執行DOM選擇。除非畫布元素的數量會改變,否則緩存該集合會更有效率,並且會執行'canvases.index(this)'。只需要記住一些事情。 :) – RightSaidFred

+0

謝謝,我會記住這一點。 – KerrM