filereader如何获取id

发布于 2025-01-04 16:14:12 字数 741 浏览 0 评论 0原文

我有这个脚本:

$.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 之后运行code> 循环完成,所以我总是得到相同的数字,比如 3, 3, 3 而不是 1, 2, 3 我猜这是因为 reader.code> 发生的。 onload,但我不是确定如何以不同的方式做...

I have this script:

$.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++;

});

so what it does is is simply gets all selected files path from multiple input and appends it to img tag.

Now what i would like to do is give that img id which would be equals to variable count but my problem is that prepending function runs after my main each loop is finished so i always get the same number, like 3, 3, 3 not 1, 2, 3 i guess it's happening because of reader.onload, but i'm not sure how to do it differently...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧竹 2025-01-11 16:14:12

发布更多代码,我可以更新并更正以下内容。但我认为你想使用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]);
    }

});

Post some more code and I can update and correct the below. But I think you want to use 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]);
    }

});
赠我空喜 2025-01-11 16:14:12

简单:

    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++;

});

Simples:

    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++;

});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文