Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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 jQuery的行为';s在for循环中追加_Javascript_Jquery - Fatal编程技术网

Javascript jQuery的行为';s在for循环中追加

Javascript jQuery的行为';s在for循环中追加,javascript,jquery,Javascript,Jquery,我对for循环中jQuery的.append()方法的行为感到困惑 此代码附加并显示div元素上的文件名。它工作得很好,但我正在阅读代码,我理解文件名在循环时会按顺序/一个接一个地追加。但循环完成后,它们似乎会一起显示。我还试图用警报来拦截它 为什么会这样 $("#fileInput").on("change", function() { $(".input-feedback").html(''); for(var i = 0; i < this.files.length

我对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>");
    }
});
$(“#文件输入”)。关于(“更改”,函数(){
$(“.input feedback”).html(“”);
对于(var i=0;i”);
}
});

文件一次添加一个,但

通常浏览器会等到js代码运行完全完成,js空闲等待事件,以便执行dom渲染(这取决于浏览器、您运行的事件类型以及应用的dom更改)


如果您想确定每个项目是如何添加的,那么最好的方法是使用setTimeout或setInterval异步运行代码。

文件一次添加一个,但

通常浏览器会等到js代码运行完全完成,js空闲等待事件,以便执行dom渲染(这取决于浏览器、您运行的事件类型以及应用的dom更改)


如果您想确定每个项目是如何添加的,那么最好的方法是使用setTimeout或setInterval异步运行代码。

事实并非如此。它们一次附加一个。由于加载时间非常短,浏览器不会在每次调用append时重新呈现页面,因此您看不到这两者之间的差异。它等待脚本完成,然后重新绘制页面。否则它会非常慢,没有实际的好处。是的jquery也可能只在帧渲染之前追加,以减少重新渲染。@JoelHarkes hum不。jquery不会这样做。当您对DOM进行修改时,它们是同步进行的。否则会是一片混乱。。。延迟的是回流(即所有布局、盒子尺寸等的重新校准),在某些情况下,回流和重新喷漆也可能同步进行。但除了同步回流,这些都是由浏览器处理的,而不是由jQuery处理的。事实并非如此。它们一次附加一个。由于加载时间非常短,浏览器不会在每次调用append时重新呈现页面,因此您看不到这两者之间的差异。它等待脚本完成,然后重新绘制页面。否则它会非常慢,没有实际的好处。是的jquery也可能只在帧渲染之前追加,以减少重新渲染。@JoelHarkes hum不。jquery不会这样做。当您对DOM进行修改时,它们是同步进行的。否则会是一片混乱。。。延迟的是回流(即所有布局、盒子尺寸等的重新校准),在某些情况下,回流和重新喷漆也可能同步进行。但除了同步回流,这些都是由浏览器处理的,而不是由jQuery处理的。