2016-04-02 155 views
-2

實際上,它似乎在JSFiddle中工作沒有太大問題。appendChild方法不起作用

https://jsfiddle.net/3zjqwbgy/5/

然而,當我嘗試在本地使用記事本++運行它,我得到以下錯誤:

Cannot read property 'appendChild' of null 

可能是什麼原因呢?我怎樣才能使它在當地工作?

+0

你的腳本在html代碼中是哪裏? –

+0

糟糕...在提供的小提琴控制檯中沒有錯誤... – Rayon

回答

1

確保在運行appendChild方法時有HTML可用。

這意味着你將一切包裝成一個load處理程序:

window.addEventListener("load", function() { 
    /* your actual code */ 
    ... 
    showElmntProperty("myDeck", "cardName", "first"); 
}); 

它的工作中的jsfiddle因爲的jsfiddle正在做的是爲你自動的(默認) - 你可以改變它,但:

0

由於你的代碼在JSFiddle上工作,我唯一能想到的就是我頭頂上的東西是你錯位了你的<script></script>標籤。嘗試將它們移到表格下方,以便它們可以通過JavaScript「看到」。

0

每當你得到一個「無法讀取屬性」的null的某個屬性名稱時,它只是意味着你正在調用該方法的對象實際上並不指向你認爲它的對象 - 它並不指向。在所有的任何對象

現在,在你的代碼,你沒有說(完全一致),你所得到的錯誤,而是採取以下兩行:

node.appendChild(textnode); 
    document.getElementById(id).appendChild(node); 

如果您收到的錯誤第一行,那麼node變量實際上並不是指什麼,如果是第二行,那麼你得到的錯誤是document.getElementById(id)沒有返回實際的對象,在這種情況下,您需要檢查您正在使用的id變量實際上是否與HTML元素的id匹配。

而且,當然,知道您的代碼運行時間至關重要。它可能是這樣的:

document.getElementById(id) 

試圖在元素被分析到DOM之前找到元素。