JavaScript 为什么运行结果中先输出div的所有内容?而不是只有#text
<!DOCTYPETHML><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb...
<!DOCTYPE THML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>无标题文档</title>
</head>
<body>
<div id="con">
<p>javascript</p>
<div>jQuery</div>
<h5>PHP</h5>
</div>
<script type="text/javascript">
var x=document.getElementById("con");
document.write(x.firstChild.nodeName+"<br>");
document.write(x.lastChild.nodeName+"<br>");
</script>
</body>
</html> 展开
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>无标题文档</title>
</head>
<body>
<div id="con">
<p>javascript</p>
<div>jQuery</div>
<h5>PHP</h5>
</div>
<script type="text/javascript">
var x=document.getElementById("con");
document.write(x.firstChild.nodeName+"<br>");
document.write(x.lastChild.nodeName+"<br>");
</script>
</body>
</html> 展开
2个回答
展开全部
浏览器是从上往下执行代码的,所以执行到你写的js那里的时候document.write就直接向所在的位置写入内容了,这样是不会覆盖页面内容的,如果想要把页面内容覆盖掉只保留js写入的内容你可以把你的这段js代码改成这样,等页面加载完成以后再执行js的话document.write就会把页面覆盖掉
window.onload=function(){
var x=document.getElementById("con");
document.write(x.firstChild.nodeName+"<br>");
document.write(x.lastChild.nodeName+"<br>");
}
追问
真心厉害!!!领教了~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询