我正在使用AJAX和jQuery将一些JSON数据提取到HTML表中。 该脚本正在生成带有表数据元素的表行,并且工作正常。
我需要编写另一个脚本来计算表行数。
从逻辑上讲,我去了
let rows = $('table tr').length
console.log(rows)
在页面加载(例如$(document).ready)上运行此命令时,控制台输出的长度为0。
但是,在其他任何事件(例如,单击)上运行它都可以并输出正确的长度。
据我了解,浏览器会在加载任何表行之前运行计数脚本。为什么会这样?它在代码中比表生成脚本晚出现。
如何使其在页面加载时正常工作?干杯。
答案 0 :(得分:0)
马修·赫伯斯特(Matthew Herbst)所说的完全正确。尽管由于您使用的是jQuery,并且根据http://api.jquery.com/jquery.ajax/上的文档,但我还是建议您使用.done函数(或者可替代地,使用成功回调)。 例子:
完成方法:
$.ajax({
url: "http://example.com/getRows.php",
})
.done(function( data ) {
// data received
doWhateverHere();
});
成功回调:
$.ajax({
url:"http://example.com/getRows.php",
success:function(data) {
// data received
doWhateverHere();
}
});