2013-09-20 107 views
0

如何在迭代對象數組時通過修改對象的css?這裏是我的嘗試:使用jquery修改對象的css,同時遍歷對象數組

var buttons = $('#nav li'); 
for(button in buttons){ 
    button.css("opacity","1"); 
} 

但這給出了錯誤:

Uncaught TypeError: Object 0 has no method 'css' 
(anonymous function) 
k jquery-1.8.0.min.js:2 
l.fireWith jquery-1.8.0.min.js:2 
p.extend.ready jquery-1.8.0.min.js:2 
D 
+1

'button'設置爲的鍵對象或數組,而不是值 - JS'for-in'不像PHP'foreach'。 – Barmar

+0

啊,這就是爲什麼! '$(buttons [button]).css(「opacity」,「1」);'工作,謝謝! – mbdavis

+0

但未定義的答案是遍歷jQuery集合的慣用方式。 – Barmar

回答

1

您不必通過收集迭代設置css,jQuery的爲您完成此:

$('#nav li').css('opacity','1'); 

您在jQuery對象的所有鍵上調用.css()方法,而不是在實際選定的元素上,jQuery返回一個由jQuery包裝的選定元素數組,if你想獲得的實際元素數組,你可以使用.get()方法,如果你想通過收集迭代,你可以簡單的使用方法.each()

$('#nav li').each(function(index, element) { 
    // ... 
}); 
+0

完美,謝謝!將在幾分鐘內接受答案 – mbdavis