2012-05-29 22 views
2
$('.aClass')[index].addClass('newClass'); 

返回數組這就是我想要做的,但它不能正常工作,而且它的後打破了代碼。 我在做什麼錯?

+0

你任何機會在一個循環中添加的所有索引?在這種情況下只需刪除索引。 jQuery將應用於所有元素 –

+0

如果您正在使用本地DOM元素,則可以始終使用'className + =「newClass」'或'classList.add(「newClass」)'。 – alex

回答

8

當使用像這樣的索引時,它返回DOM元素,因此沒有jQuery方法。

使用.eq()而不是該索引處返回的DOM元素,同時仍然jQuery的包裹:

//as a function call 
$('.aClass').eq(index).addClass('newClass'); 

還有a selector :eq,在形式和使用方面的細微差別的方法版本。該指數是選擇字符串的一部分,所以如果你使用動態值,你不得不削減的字符串:

//the selector version: 
$('.aClass:eq('+index+')').addClass('newClass'); 

另外的信息:你做的是類似.get()返回的DOM元素是什麼, 不裹在jQuery的,該索引:

//the same thing 
$('.aClass').get(index) 
$('.aClass')[index] 
+0

嘿,謝謝約瑟夫。現在它更有意義。感謝您爲我清理:) – tweet