猿问

对document.write()一些很奇怪的地方

之前问过类似问题,然而代码测试效果还是没达到预期的效果。具体是这样的。

首先这是我有疑问的代码图:

结果:

http://img.mukewang.com/5844f38c00013e9404010500.jpg

上一段的“怎么输出了两次”很好理解,但下面的文本却输出了两次。本来,对于innerHTML的理解是提取对象的文本,但我之前问过类似问题,得到的回答是:

http://img.mukewang.com/5844f42e00018e9c07970045.jpg

就是说document.getElementByID("con").innerHTML除了提取我第一次写入的文本外,还会再执行一次写入文本指令,所以就出现两次,这样解释可以,然后我试下这样测试:

http://img.mukewang.com/5844f4fc0001960304650185.jpg就是把第一次输出文本注释掉,然后:


http://img.mukewang.com/5844f52c00014e7404030410.jpg就是一片空白,这就奇怪了,就算div内没有文本,但不是说会另外执行其内的代码吗?按理应出现一个“为什么会执行两次”啊

再看下其他前辈的回答http://img.mukewang.com/5844f5eb0001954608010067.jpg

道理还是差不多,求解。

我要冲钱
浏览 1665回答 1
1回答

stone310

说的很清楚了script里面的a开始执行一次,document.getElementByID("con").innerHTML这个相当于再执行一次script标签里面的内容,最后外面的document.write()再次执行script里面的内容;就是3次;如果注释掉,script里面就没有东西显示,document.getElementByID("con").innerHTML这个相当于再执行一次script标签里面的内容,还是没有东西,最后外面的document.write()再次执行script里面的内容;还是没东西,就一篇空白
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答