Javascript 元素通过计时器追加子元素
我试图每秒钟将新元素p添加到div中,现在我有了类似的东西Javascript 元素通过计时器追加子元素,javascript,html,Javascript,Html,我试图每秒钟将新元素p添加到div中,现在我有了类似的东西 <div id="div"> </div> <button id="button" onclick="newfun()"> 1</button> <script type="text/javascript"> function newfun() { var d = new Date(); var t = d.getTime();
<div id="div"> </div>
<button id="button" onclick="newfun()"> 1</button>
<script type="text/javascript">
function newfun() {
var d = new Date();
var t = d.getTime();
while(1) {
d = new Date();
var c = d.getTime();
if (c-t>1000) {
var para = document.createElement("p");
var node = document.createTextNode("new para");
para.appendChild(node);
var element = document.getElementById("div");
element.appendChild(para);
//return;
}
}
}
</script>
1.
函数newfun(){
var d=新日期();
var t=d.getTime();
而(1){
d=新日期();
var c=d.getTime();
如果(c-t>1000){
var para=document.createElement(“p”);
var节点=document.createTextNode(“新段落”);
子节点(节点)段;
var元素=document.getElementById(“div”);
要素.附件(第6段);
//返回;
}
}
}
每次我点击按钮,它就挂在那里。我应该如何更改它以使其工作?您不应该在执行此操作时使用
,因为您正在运行一个无限循环。要每1秒运行一次计时器,请使用setInterval
var interval;
function newfun() {
clearInterval(interval); //clear any existing setInterval. clicking on button should not run multiple setIntervals and better clear it
var element = document.getElementById("div"); //for better performance moved it outside.
interval = setInterval(function(){
var para = document.createElement("p");
var node = document.createTextNode("new para");
para.appendChild(node);
element.appendChild(para);
}, 1000); // runs for every one seconds
}
使用setInterval
代替,因为(1)
不是计时器,而是无限循环。