<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Title</title>
<script language="JavaScript">
<!--
function showtags()
{
var tag, tags;
//document.write(document.all.length);
tags = "The tags in the page are:"
for(i = 0; i < document.all.length; i++)
{
tag = document.all(i).tagName;
tags = tags + "<br>" + tag;
}
document.write(tags);
}
// -->
</script>
</head>
<body onload="showtags()">
<h1>My <b>Web</b> Page</h1>
</body>
</html>
输出:
页面中的标签是:
HTML
HEAD
META
TITLE
SCRIPT
BODY
H1
乙
通过取消注释第一个document.write(),我得到以下输出:
8页面中的标签是:
HTML
HEAD
BODY
缺少某些标签,我不明白错误在哪里!我提前谢谢你。
答案 0 :(得分:1)
这是因为在文档加载完成后调用document.write
,它会删除并替换当前文档。如果您在此处看到:onload="showtags()"
那就是为什么会发生这种情况。在DOM完成加载之前需要调用document.write
。例如:
<p> <script> document.write("hi"); </script> </p>
没关系,因为DOM仍在加载。但是在onload
中,或者在页面完成加载后,通常不会。
答案 1 :(得分:0)
文档加载完毕后,任何document.write()
都会清除当前文档并启动一个新的空白文档,因此您之前在文档中的内容将被清除。
由于您在onload
处理程序中调用此函数,因此文档已经完成加载,因此您的document.write()
将开始一个新文档。