0
我覺得有點愚蠢,因爲它應該是如此簡單,但我變得非常沮喪。在for循環中使用querySelectorAll
我有幾個div我一次只顯示一個,所以我想隱藏其餘的。我的方法:
var elements = document.querySelectorAll("div");
for (i in elements) {
elements[i].style.setProperty("display", "none");
}
Firefox總是說elements[i].style.setProperty();
未定義。 我已經使用正常的for循環,而不使用in
,但我仍然想知道爲什麼這不起作用的解決方法。
在此先感謝!
呵呵。其實,這就是我做的解決方法。我認爲使用一種方法來設置'style'會比通過直接的屬性修改來設置更合適的代碼。 爲什麼我必須正確使用for-loop?我發現它可行,但不是爲什麼我的版本不會... –
首先,使用'for..in'循環遍歷所有可枚舉的屬性,這在某些罕見情況下會導致問題。另外,在'for ... in'循環中沒有保證的順序,並且通常情況下,您希望按順序迭代元素,特別是在修改這些元素時,所以最好使用常規的for循環節點列表,這就是爲什麼他們有一個長度,是「陣列狀」。 – adeneo