我的代码如下:
window.onload = function() {
var x = document.createElement("INPUT");
x.setAttribute("type", "text");
x.setAttribute("value", "");
document.body.appendChild(x);
}
我还想写点东西,我增加了一行。
赞:
window.onload = function() {
var x = document.createElement("INPUT");
x.setAttribute("type", "text");
x.setAttribute("value", "");
document.body.appendChild(x);
document.write("<br>");
}
然后,我的输入标签突然消失了。
因此,我写了'AAA'来检查是否添加了<br>
代码。
赞:
window.onload = function() {
var x = document.createElement("INPUT");
x.setAttribute("type", "text");
x.setAttribute("value", "");
document.body.appendChild(x);
document.write("<br>");
document.write("AAA")
}
有一个新行,即AAA。
因此,我认为document.write()
中存在错误或某些错误。
有任何错误吗?
还是我写错了什么?
我的目的是添加新行。
我想让我的代码正常运行。
有什么办法可以解决这个问题?
答案 0 :(得分:3)
问题在于,如果页面已经加载,document.write
将使用新的HTML字符串替换 整个页面。如果您删除了window.onload
处理程序,并在浏览器进入<script>
标签后立即运行了该代码段,则<input>
和<br>
都将插入到文档中符合预期:
<script language="javascript">
var x = document.createElement("INPUT");
x.setAttribute("type", "text");
x.setAttribute("value", "");
document.body.appendChild(x);
document.write("<br>");
</script>
通常,解决方案是不使用document.write
-它的行为可能令人困惑,并且它提供的任何东西都无法像{{1 }}和appendChild
,例如:
insertAdjacentHTML
或
document.body.appendChild(document.createElement('br'));