Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 试图创建一个删除自身的表行_Javascript - Fatal编程技术网

Javascript 试图创建一个删除自身的表行

Javascript 试图创建一个删除自身的表行,javascript,Javascript,我正在尝试使用javascript每5秒删除一次表的顶行。我的javascript如下所示: setTimeout(function(){ document.getElementById("myTable").deleteRow(0); }, 5000); 这使得它在5秒后删除第一行。有没有办法重新设置设置超时,重新开始倒计时 将其放入函数中,然后再次调用它 function deleteRows(){ var t = setTimeout(function(){

我正在尝试使用javascript每5秒删除一次表的顶行。我的javascript如下所示:

setTimeout(function(){ 
    document.getElementById("myTable").deleteRow(0);   
}, 5000);

这使得它在5秒后删除第一行。有没有办法重新设置设置超时,重新开始倒计时

将其放入函数中,然后再次调用它

function deleteRows(){
    var t = setTimeout(function(){
       document.getElementById("myTable").deleteRow(0);  
       clearTimeout(t);
       deleteRows();
    }, 5000);
};

在本例中,您似乎正在寻找
setInterval
的功能:

var myTimer = setInterval(function(){ 
    document.getElementById("myTable").deleteRow(0);   
}, 5000);
如果您仍然想使用
setTimeout
,则需要在
函数()中调用另一个
setTimeout
这也做了同样的事情。基本上,我们有一个函数,它通过一个
setTimeout
不断地调用自己,如下所示:

(function loop() {
    document.getElementById("myTable").deleteRow(0); 
    setTimeout(loop, 5000);
})();

我将使用
setInterval()
。在回调函数中,检查行数,如果行存在,则删除它,如果它不删除时间间隔

参考:


JS Fiddle示例:(我使用了1秒延迟来加快速度)

您需要使用
setInterval
而不是
setTimeout

在此处检查它们之间的差异:

设置超时(函数,毫秒):

在等待指定的毫秒数后执行函数

setInterval(函数,毫秒)

与setTimeout()相同,但连续重复函数的执行

因此,您可以按如下方式重写代码:

var timer = setInterval(function(){ 
    document.getElementById("myTable").deleteRow(0);   
}, 5000);
然后,如果要停止该计时器功能的执行,可以使用:
window.clearInterval(计时器)

谢谢您,先生。请投赞成票,尽管我在这里待久了你才会看到。