为了账号安全,请及时绑定邮箱和手机立即绑定

关于document.write为什么会改变body里面的内容?(穿越问)

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<script type="text/javascript">

function a(){

var myweek2=document.getElementById("schedule").value;

switch(parseInt(myweek2)){

case 1:

case 2:

document.write("学习理念知识");

break;

case 3:

case 4:

document.write("到企业实践");

break;

case 5:

document.write("总结经验");

break;

case 6:

case 7:

document.write("周六、日休息和娱乐");

break;

default:

document.write("信息出错了");

}

}

</script>

</head>

<body>

testtest

<label for="schedule">请输入工作日:</label>

<input type="text" name="plan" id="schedule">

<input type="button" name="button" onclick="a()" value="

点击我试试">

</body>

</html>

为什么我输入数字点了按钮以后, 文本框和我写在Body里面的test那些字全部都不见了??

如果是这样, 范例里面不是应该只显示一行文字吗?? 感觉 这个问题很白痴,但是我确实不太明白原因在哪里

正在回答

3 回答

打开新页面时,浏览器首先使用document.open()打开一个新文档,然后将下载的html文本通过document.write()写入,最后调用document.close()关闭文档流。
你用button触发了一个函数,调用document.write()时原文档已关闭,此时调用document.write()会自动调用document.open()开启一个新文档,原文档内容不会写入这个新打开的文档,之后调用的document.write()因为本文档未关闭,都会被追加输出到此文档.加载完成后,自动关闭本文档.

1 回复 有任何疑惑可以回复我~
#1

精慕门7074991

太牛p了,这就是我想要的答案,大哥我直接拜你为师
2021-11-24 回复 有任何疑惑可以回复我~

因为Document.write的意思就是向页面输出一段指定的文本或者内容,而你并没有给它指定要出现的位置。

0 回复 有任何疑惑可以回复我~
#1

rainy_li3676598 提问者

但是我们在学的时候, 有时写好几个document.write, 都能显示, 并不是执行一次。 怎么那时候能正常显示 所有内容,按我的理解, 应该是执行一次就刷新一次页面, 所以应该只会显示最后一次的命令。 另外就是, 怎么样才能给指定位置写内容呢?
2016-09-23 回复 有任何疑惑可以回复我~
#2

xing_org1 回复 rainy_li3676598 提问者

如果你想放在div里,就获取到div,然后写div.innerHTML = document.write('你要写的内容');,这样就可以给指定位置写内容
2016-09-23 回复 有任何疑惑可以回复我~
#3

rainy_li3676598 提问者 回复 xing_org1

非常感谢, 我再调试一下看看
2016-09-26 回复 有任何疑惑可以回复我~

运行会刷新界面

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于document.write为什么会改变body里面的内容?(穿越问)

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信