Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

242
Visualizações
Elementos de entrada de archivos múltiples JS en la página: las entradas no funcionan más allá de la primera entrada (no se muestra la imagen de vista previa)

Intentando obtener múltiples entradas de archivos y sus vistas previas correspondientes para cargar. Obtengo elementos por nombre de clase, pero no creo que los esté iterando correctamente. No quiero usar identificaciones únicas para los elementos, ya que los agregaré a la página dinámicamente y no puedo codificar identificaciones únicas para cada entrada. Si pudiera editar mi código o decirme qué estoy haciendo mal. Gracias. Código abierto a continuación. https://codepen.io/pfbarnet/pen/VwMgmbP

 var fileTag = document.getElementsByClassName("filetag"), i, preview = document.getElementsByClassName("preview"), i; for (i = 0; i < fileTag.length; ++i) { //check if fileTag null fileTag[0].addEventListener("change", function () { changeImage(this); }); function changeImage(input) { var reader; if (input.files && input.files) { reader = new FileReader(); reader.onload = function (e) { preview[0].setAttribute("src", e.target.result); }; } reader.readAsDataURL(input.files[0]); } } <input type='file' class='filetag'><img src='test' class='preview'/></input> <input type='file' class='filetag'><img src='test' class='preview'/></input>
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Pocos notec mi amigo. Primero debe declarar su variable i dentro del ciclo con una palabra clave let , de lo contrario, tendrá un alcance global.

En su bucle, en lugar de asignar siempre un detector de eventos al primer elemento, debe hacerlo dinámico escribiendo fileTag[i] en lugar de fileTag[0]

Además, cuando se llama a changeImage , también pásele la variable i , de modo que dentro del cuerpo de esta función, puede cambiar el src de la imagen exacta.

Echa un vistazo al código de abajo.

 for (let i = 0; i < fileTag.length; ++i) { // <- Declare with a let keyword fileTag[i].addEventListener("change", function () { changeImage(this, i); // <- HERE }); }

Y aquí, use i para indicar qué elemento exacto está mutando, por ejemplo, la imagen y el archivo de entrada

 function changeImage(input, i) { console.log(input); var reader; if (input.files && input.files) { reader = new FileReader(); reader.onload = function (e) { preview[i].setAttribute("src", e.target.result); }; } reader.readAsDataURL(input.files[i]); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda