【问题标题】:filereader how to get id文件阅读器如何获取ID
【发布时间】:2012-02-11 21:35:52
【问题描述】:

我有这个脚本:

$.each($(this)[0].files, function(i, file){
        if (input.files && input.files[0]) {
            var reader = new FileReader();
            reader.onload = function (e) {
                $('#display_image').prepend("<img src='"+e.target.result+"' />");
            };
            reader.readAsDataURL(input.files[count]);
        }
        count++;

});

所以它所做的只是从multiple input 获取所有选定的文件路径并将其附加到img 标记。

现在我想做的是给 img id 这将等于变量 count 但我的问题是前置函数在我的主 each 循环完成后运行,所以我总是得到相同的数字,比如3, 3, 3 而不是1, 2, 3 我想这是因为reader.onload 而发生的,但我不确定如何以不同的方式做到这一点......

【问题讨论】:

  • 您需要为我们发布更多代码,特别是无论这个 & 输入是什么(看起来它们可能是同义词)。但乍一看,您不应该使用 i 与 count。

标签: javascript fileapi


【解决方案1】:

发布更多代码,我可以更新和更正以下内容。但我认为你想使用i

$.each(
   $(this)[0].files, 
   function(i, file){
      if (input.files && input.files[0]) {
         var reader = new FileReader();
         reader.onload = function (e) {
            $('#display_image')
               .prepend("<img id='" i + 
                  "' src='"+e.target.result+"' />"
               );
          };
          reader.readAsDataURL(input.files[i]);
    }

});

【讨论】:

  • 嗯,我想我可以使用它,它会在我的完整代码中产生一些其他问题,但修复它并不难,谢谢
【解决方案2】:

简单:

    img_id = 0;
$.each($(this)[0].files, function(i, file){
        if (input.files && input.files[0]) {
++img_id;
            var reader = new FileReader();
            reader.onload = function (e) {
                $('#display_image').prepend("<img id='"+img_id+"' src='"+e.target.result+"' />");
            };
            reader.readAsDataURL(input.files[count]);
        }
        count++;

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多