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()
,执行,因此,您将丢失对表变量的引用。嗯,好的,我明白了,感谢您的解释。事实上,它位于函数内部