javascript – 多个input.files上的jQuery循环

我需要在多个文件输入上循环它:
var reader = new FileReader();

    reader.onload = function (e) {
        $('#pprev_0')
        .attr('src',e.target.result);
    };

    reader.readAsDataURL(input.files[0]);

我试过这个,但它不起作用:

var fileCount = 0;
$("input[name='files[]']").each(function() {

    var reader = new FileReader();

    reader.onload = function (e) {
        $('#pprev_'+fileCount)
        .attr('src',e.target.result)
        .css("display","block");
    };

    reader.readAsDataURL(input.files[fileCount]);

    fileCount++;
});

fileCount输出上的alert()在多个文件选择上是一次0.没有进一步的提醒如果我在代码中使用数字而不是fileCount var,它在位置上工作. R.G. input.files [2] ……

任何的想法?

解决方法

当你这样做:$(“input [name =’files []’]”).each(function(){你实际上获得了与选择器匹配的任何元素.在这种情况下,你得到你的单个多文件输入(这就是为什么你只看到1个警报.你想要做的是迭代文件.

页面代码可以完全按照您的要求执行.我建议你看一下:

http://www.html5rocks.com/en/tutorials/file/dndfiles/

要将它应用于您的情况,您可以执行以下操作:

var files = $('#files')[0].files; //where files would be the id of your multi file input
//or use document.getElementById('files').files;

for (var i = 0,f; f = files[i]; i++) {

    var reader = new FileReader();

    reader.onload = function (e) {
        $('#pprev_'+fileCount)
        .attr('src',"block");
    };

    reader.readAsDataURL(f);

}

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...