Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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,我有一张这样的桌子: setInterval(fillTable,2000); 此表每2秒刷新一次。在等待这2秒钟之后,我想从这个表中获取数据 例如,我尝试以下方法: var table = document.getElementById("myTable"); setTimeout("alert(table.rows.length);",3000); 最后一行代码应该返回表中已经应该填充的行数(用setInterval) 然而,我得到的是: ReferenceError: table is

我有一张这样的桌子:

setInterval(fillTable,2000);
此表每2秒刷新一次。在等待这2秒钟之后,我想从这个表中获取数据

例如,我尝试以下方法:

var table = document.getElementById("myTable");
setTimeout("alert(table.rows.length);",3000);
最后一行代码应该返回表中已经应该填充的行数(用setInterval)

然而,我得到的是:

ReferenceError: table is not defined 
然而,如果我只是尝试:

alert(table.rows.length);
它返回0

怎么了?他不知道2秒钟后桌子就满了吗

提前谢谢

试试这个

setTimeout(function(){
    alert(table.rows.length)
}),3000);

您的代码可能在函数中:

调用
setTimeout
时,您正在计算的代码将
对象作为
窗口
获取

所以当你访问局部变量时。您的代码无法工作,因为现在它将在全局对象(
窗口
)中搜索变量

因此,将代码放入函数中,它就会工作:

setTimeout(function(){
    alert(table.rows.length)
},3000);

请不要发布“试试这个”的答案,它的质量很差。解释你做了什么以及为什么它应该工作。这很好,但我希望有一个解释变量表是在你的方法中定义的,但是当你运行一个字符串代码时,找不到变量(代码将在方法之外运行)。如果你将一个字符串传递给setTimeout,它将使用
Eval()
,执行,因此,您将丢失对表变量的引用。嗯,好的,我明白了,感谢您的解释。事实上,它位于函数内部