2013-07-05 39 views
0

首先,>>>FIDDLE HERE<<<無法設置屬性「marginLeft」的未定義

我把一系列的div在我的網頁,並使用JavaScript來改變他們的利潤。

var inn = document.getElementsByClassName("line"); 
for (var i in inn) { 
    inn[i].style.marginLeft=40+"px"; 
} 

雖然它改變了我的利潤已經在我的控制檯報告一個錯誤:

Uncaught TypeError: Cannot set property 'marginLeft' of undefined 

所以我剩下的代碼不能執行。

你能幫我解決這個問題嗎?謝謝!

回答

3

看看屬性,超過你的循環迭代:

0 
1 
2 
3 
4 
length 

一個for...in loop遍歷對象的所有枚舉的屬性。除非你真的打算這麼做,否則不應該將它用於類似數組的對象。

0通過4工作,但length沒有一個style屬性,它是你的錯誤說什麼。

使用常規for循環,而不是:

for (var i = 0; i < inn.length; i++) { 
    inn[i].style.marginLeft = 40 + "px"; 
} 
0

不要使用......在......它的速度較慢,更容易出錯試試這個:

var inn = document.getElementsByClassName("line"); 
var i=0; 
for (i=0;i<inn.length;i++) { 
    inn[i].style.marginLeft=40+"px"; 
} 

下一個顯示for ... in ...我認爲它可能包含一些不是Elements的東西,所以.style是未定義的。

for(i in inn){ 
    console.log(i); 
} 
0

另一個可行的解決方案,我爲我工作的不是類名,嘗試使用id。只有當你明確不需要類 改變這一行

var inn = document.getElementsByClassName("line"); 

var inn = document.getElementById("line"); 

和肯定使HTML文件也改變。

相關問題