программа для чтения файлов, как получить идентификатор - PullRequest
0 голосов
/ 12 февраля 2012

У меня есть этот скрипт:

$.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, но я не уверен, как это сделать по-другому ...

Ответы [ 2 ]

1 голос
/ 12 февраля 2012

Отправьте еще немного кода, и я могу обновить и исправить нижеприведенное. Но я думаю, что вы хотите использовать 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]);
    }

});
0 голосов
/ 13 апреля 2018

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

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...