![](/img/trans.png)
[英]Uncaught TypeError: Cannot set property 'innerHTML' of null
[英]Uncaught TypeError: Cannot set property 'innerHTML' of null
我收到此錯誤: "Uncaught TypeError: Cannot set property 'innerHTML' of null"
。 我在代碼中找不到錯誤。 我現在不使用CSS,也不使用jQuery。 這是我的HTML代碼:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--<script src="js/banner_test_script.js" language="javascript" type="text/javascript"></script>-->
</head>
<body>
<div id="ban"></div>
<script src="js/banner_test_script.js"></script>
</body>
</html>
這是我的JavaScript代碼:
window.onload = function what()
{
var myTimery = setInterval(function() {
myTimer();
}, 1000);
var imgn = 0;
function myTimer()
{
if (imgn === 0)
{
var d = "../../download.jpg";
imgn++;
}
else if (imgn === 1)
{
var d = "../../images.jpg";
imgn++;
}
else if (imgn === 2)
{
var d = "../../images1.jpg";
resetImgn();
}
var p = '<img src="' + d + '"></img>';
document.getElementById("ban").innerHTML = "lol";
document.writeln(p);
console.log(document.getElementById('ban') + "1");
console.log(document.getElementById("ban") + "2");
}
;
function resetImgn()
{
imgn = 0;
}
;
/*
function myTimer()
{
for (i = 0; i < 200; i++)
{
document.writeln(i);
}
}
;
*/
};
如果您在頁面的初始解析后使用document.write
(或document.writeln
)(之所以這樣做,是因為您在計時器中使用它),則隱式地執行document.open
,這會完全擦除現有頁面(並將其替換為您編寫的內容)。 因此,當您嘗試查找元素時,它們不再存在。
我不清楚您的document.writeln(p)
是用來做什么的,但是如果刪除它,您將停止擦除元素,而document.getElementById
應該可以找到它。
如果您的目標是將p
的圖像標記寫入ban
元素,則:
document.getElementById("bad").innerHTML = p;
...然后刪除document.writeln
。
旁注:該setInterval
行可以只是: var myTimery = setInterval(myTimer, 1000);
函數是一流的對象。
旁注2:您似乎在imgn
0、1、2之間imgn
0之間循環。執行此操作的邏輯有些復雜。 僅供參考,使用%
運算符有一個方便的技巧,您可以使用:
imgn = (imgn + 1) % 3;
假設您從0開始,下一個將是1,然后是2,然后是0,然后是1 ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.