下面的代码会产生相同的恼人错误。它将在循环的第一次传递中返回button元素,但之后只返回null。有任何想法吗?
<script>
function Check_Submission()
{var Entry = [];
for(var i = 0; i < 14; i++)
{
for(var j = 0; j < 10; j++)
{
Entry[i] = document.getElementById('Add');
document.write(Entry + '<br>');
}
}
}
</script>
<button id = 'Add' onclick = "Check_Submission()" >Click me.</button>
答案 0 :(得分:3)
当您对已加载的文档执行document.write()
时,它会清除当前文档并开始编写新的空文档。
因此,只要您在循环中调用第一个document.write()
,它就会清除当前文档,然后document.getElementById('Add')
将不再找到以前的内容。
您应该做的是使用DOM插入方法(例如.appendChild()
或.insertBefore()
)将新内容添加到现有加载页面。
答案 1 :(得分:3)
页面加载后无法使用document.write。当你这样做时,它会擦除页面内容。
您需要使用DOM方法添加新内容或使用控制台进行调试。
答案 2 :(得分:0)
在我看来,就像你第一次运行for循环一样,你使用document.write。这将清除所有内容,因此document.getElementById('Add')将不返回任何内容。你真正想做的是像'appendChild'或者修改元素的innerHTML。
答案 3 :(得分:0)
document.write
都会清除所有内容。
试着写,
document.getElementById('divid').innerHTML+=Entry+'<br>';
<div id='divid'></div>