我对for循环中jQuery的.append()
方法的行为感到困惑。
此代码在div元素上附加并显示文件名。它运行正常,但我正在阅读代码,我理解文件名在循环时依次序列附加/一个接一个地附加。但是看起来它们会在循环结束后一起显示出来。我还试图通过警报来拦截它。
为什么会这样?
$("#fileInput").on("change", function() {
$(".input-feedback").html('');
for(var i = 0; i < this.files.length; i++) {
var file = this.files[i];
console.log(file.name);
alert('test');
$(".input-feedback").append("<p>"+ file.name +"</p>");
}
});
答案 0 :(得分:0)
一次添加一个文件,但......
通常浏览器会等到js代码运行完成并且js空闲等待事件才能执行dom渲染(这取决于浏览器,运行的事件类型以及应用的DOM更改)。 / p>
如果您想查看每个项目的确定方式,那么最好的方法是使用setTimeout或setInterval异步运行代码。