我有一組元素,點擊時,我想改變顏色。現在,我爲它們中的每一個分配一種顏色(即,如果它是列表中的第一個顏色,那麼這個顏色,如果是第二個顏色,則是另一種顏色......),但是如何檢查它們是哪一個?就像,如果我點擊第三個,我怎麼知道這是第三個?有沒有一個JavaScript方法,甚至是一個jQuery方法?在Javascript中獲取元素 - 但文檔中的元素是什麼?
感謝
我有一組元素,點擊時,我想改變顏色。現在,我爲它們中的每一個分配一種顏色(即,如果它是列表中的第一個顏色,那麼這個顏色,如果是第二個顏色,則是另一種顏色......),但是如何檢查它們是哪一個?就像,如果我點擊第三個,我怎麼知道這是第三個?有沒有一個JavaScript方法,甚至是一個jQuery方法?在Javascript中獲取元素 - 但文檔中的元素是什麼?
感謝
jQuery有一個.index()
方法,應該做你想做的。
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.');
});
謝謝,你的例子使一切都清楚。 – KerrM
不客氣。很高興我能幫上忙。 –
如果他們的兄弟姐妹:
$(this).index();
這將返回一個基於0的索引,因此第三個是2
。
如果他們沒有兄弟姐妹,緩存設置:
var els = $('.my_group_of_elements');
那麼做到這一點:
els.index(this);
感謝您的回答。我最終使用$(this).index('canvas');但我會記住你的答案,以防將來需要使用它! – KerrM
@KerrM:不客氣。請記住,$(this).index('canvas');'會每次爲所有'canvas'元素執行DOM選擇。除非畫布元素的數量會改變,否則緩存該集合會更有效率,並且會執行'canvases.index(this)'。只需要記住一些事情。 :) – RightSaidFred
謝謝,我會記住這一點。 – KerrM
請出示你的HTML的一個樣本。 – jfriend00