为什么div内的文本内容会输出了两次?

<!DOCTYPE  HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制语句</title>

</head>
<body>
<div id="con">
<script type="text/javascript">
 var A=[
     ['小A','女','大一',21],
     ['小B','男','大三',23],
     ['小C','男','大四',24],
     ['小D','女','大一',21],
     ['小E','女','大四',22],
     ['小F','男','大一',21],
     ['小G','女','大二',22],
     ['小H','女','大三',20],
     ['小I','女','大一',20],
     ['小J','男','大三',20]
    ];
   //将以上数组通过join()方法全部转换为字符串并输出 
for(var i=0;i<A.length;i++){    
var B=A[i].join("-")
document.write(B)
}
</script>
</div>
<script type="text/javascript">
//提取上面的文本内容并输出
document.write(document.getElementById("con").innerHTML)
</script>
</body>
</html>

结果http://img.mukewang.com/5841a214000146ea10210272.jpg

我要冲钱
浏览 1835回答 3
3回答

按照自己的节奏前行

document.getElementById("con").innerHTML,你的这一块拿的是id=con的全部内容,包括你自己写的js代码块,因此,在这里又执行了一边你写的js代码加上最开始执行js生成的字符串,就成了两边,你拿到的innerHTML实际上是<script type="text/javascript"> var A=[     ['小A','女','大一',21],     ['小B','男','大三',23],     ['小C','男','大四',24],     ['小D','女','大一',21],     ['小E','女','大四',22],     ['小F','男','大一',21],     ['小G','女','大二',22],     ['小H','女','大三',20],     ['小I','女','大一',20],     ['小J','男','大三',20]    ];   //将以上数组通过join()方法全部转换为字符串并输出 for(var i=0;i<A.length;i++){    var B=A[i].join("-")document.write(B)}</script>小明.....</div>

猎豹012

你仔细看文本内容其实输出了三次,浏览器是自上向下解释标签的,当遍历完后页面上已经输出一边了,当你再document.write(document.getElementById("con").innerHTML)时,有两步操作:1,显示第一次内容,2,jsfor循环又执行一次,共三次

迁就LOSE

write() 方法可向文档写入 HTML 表达式或 JavaScript 代码。你执行了2次,所以肯定有两次啊。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript