我有这个网页有一个循环来写出一堆列表元素。
在加载时,for
循环运行56次,并使用CSS样式和所有。
但是,我有一个输入按钮来运行运行loops()
代码块的do
函数,这基本上会重新加载带有新列表的页面,而我的其他html都不会出现。
如何制作一个loops()
来添加我的列表元素并增加列表而不是重新加载整个文档?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="jscss.css">
<script src="js.js"></script>
</head>
<body>
<script>
function loops(){
var i= 0;
do{
document.write("<li id='list'>"+i+"</li>");
i++;
}while(i < 100);
}
document.write("Hello World");
document.write("<br>");
document.write("<input id='string' type='text'>");
document.write("<input onClick='loops()' type='button' value='Submit'>");
document.write("<ul id='list'>");
for (i = 0; i <= 56; i++) {
document.write("<li>"+i+"</li>");
};
document.write("</ul>");
</script>
答案 0 :(得分:1)
因为在加载文档后调用document.write将清除文档。
注意:当document.write写入文档流时,调用 关闭(加载)文档上的document.write会自动调用 document.open将清除文档。
因此,当您单击该按钮时,文档已经加载,因此它已被清除。
您可以使用appendChild()或将新内容添加到父元素的innerHTML
function loops() {
var i = 0,
lst = document.getElementById('list'),
html = '';
do {
html += "<li>" + i + "</li>";
} while (++i < 100);
lst.innerHTML += html;
}
document.write("Hello World");
document.write("<br>");
document.write("<input id='string' type='text'>");
document.write("<input onClick='loops()' type='button' value='Submit'>");
document.write("<ul id='list'>");
for (i = 0; i <= 56; i++) {
document.write("<li>" + i + "</li>");
};
document.write("</ul>");
&#13;
答案 1 :(得分:0)
因为您使用document.write()
所以请勿使用document.write()
。 Google innerHTML
。