2012-01-13 88 views
0

我就在這這是爲什麼來了空

document.getElementById("Attachment" + x).style.display = "none"; 

我真的不想寫這5次行空的錯誤。如果我這樣做,這條線就行。

document.getElementById("Attachment1").style.display = "none"; 

我在這裏錯過了什麼?爲了保持這個簡短,我只包含了錯誤所在的循環。

for (x = 0; x < 5; x++) 
{ 

    if(showHideArray[x] &gt; 0) 
    { 
    document.getElementById("Attachment" + x).style.display = "none"; 
    } 
    else { 
     document.getElementById("Attachment" + x + "If").style.display = "none"; 
     } 

} 

回答

3

您可能沒有ID爲Attachment0的元素。

+0

你是對的,先回答。我確實擁有一個帶有Attachment0標識的元素。謝謝您的幫助! – user1015711 2012-01-13 23:27:38

0

如果沒有給定id的元素,則此函數返回null。所以如果我是你,我會打印出document.getElementById("Attachment" + x).style.display = "none";

向我們展示它輸出的內容。但一個解決方案,將prob工作是:

for (x = 0; x < 5; x++) 
{ 

    if(showHideArray[x] &gt; 0) 
    { 
    var y = "Attachment" + x; 
    document.getElementById(y).style.display = "none"; 
    } 
    else { 
     var z = "Attachment" + x + "If"; 
     document.getElementById(z).style.display = "none"; 
     } 

} 

我會嘗試這兩件事情。

0

您正在嘗試訪問null的屬性style,這會引發錯誤。在嘗試訪問屬性之前檢查該元素是否存在。

for (x = 0; x < 5; x++) { 
    var elem = document.getElementById("Attachment" + x + (showHideArray[x] > 0 ? "If" : "")); 

    if(elem) { 
     elem.style.display = "none"; 
    } 
} 
相關問題