[英]Uncaught TypeError: Cannot set property 'innerHTML' of null - Typewriter JS Code
[英]Uncaught TypeError: Cannot set property 'innerHTML' of null on JS created div
我遇到此錯誤: Uncaught TypeError: Cannot set property 'innerHTML' of null
給出此錯誤的代碼是這樣的:
$(document).ready(function() { load(); loadMoney(); for (var i = 0; i < localStorage.length; i++){ var rawItem = localStorage.getItem(localStorage.key(i)); var item = JSON.parse(rawItem); if(item instanceof Array){ var countdownId = setInterval(function(){ var diff = Math.floor((+new Date() - item[0])/1000) if(item[1] < diff){ document.getElementById(item[2]).innerHTML = item[3]; localStorage.removeItem(localStorage.key(i)); clearInterval(countdownId); }else{ document.getElementById(item[2]).innerHTML = item[3] + " Time left: " + calculateTime(item[1]-diff); } },1000); } }
這與我已經進行了字符串化的localStorage中的數組有關,這是這樣的:
[1414879430956,2000,“ 0id”,“ CountDown”]
id來自這里,這可能是為什么它給我錯誤的原因:
function createBus(bus){
var element = document.body.appendChild(document.createElement("div"));
element.className = "bus";
element.style.left = bus.x+"px";
element.style.top = bus.y+"px";
var title = element.appendChild(document.createElement("div"));
title.innerHTML = bus.name;
var button = element.appendChild(document.createElement("button"));
button.id = bus.id*2 + "id";
button.innerHTML = "Ok, send off ";
button.onclick = function(){
startCountDown(bus.time, button.id, bus.name);
}
button.className = "pure-button";
var icon = button.appendChild(document.createElement("i"));
icon.className = "fa fa-bus"
return element;
}
我懷疑這是在函數運行之前未創建的div中的錯誤,因為如果我運行
document.getElementById("0id").innerHTML = ...
然后就可以了。
提前致謝 :)
這確實是一條評論,但我想要一些用於格式化的空間。 當您執行以下操作時:
document.getElementById(item[2]).innerHTML = item[3];
您希望getElementById返回一個節點,因為如果不返回,則結果是一定的錯誤。 一個更可靠的模式是:
var node = document.getElementById(item[2]);
if (node) {
node.innerHTML = item[3];
} else {
// deal with node not being present
}
或類似。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.