Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

194
Vistas
Todas las imágenes se hicieron visibles con la misma identificación después de 5 segundos con javascript

Tengo una cuadrícula de imágenes de productos y me gustaría que todas las imágenes con la misma ID se hicieran visibles después de 5 segundos con javascript. De momento solo funciona con la primera imagen mientras que las demás quedan ocultas y todas tienen el mismo id. Desearía que funcionara para todas las imágenes con la misma ID.

/ ejemplo html /

 <div class"product1 image"> <img src="image1.jpg" id="myid"> </div> <div class"product2 image"> <img src="image2.jpg" id="myid"> </div>

/ ejemplo css /

 .image { visibility: hidden; }

/ ejemplo js /

 <script type="text/javascript"> function change () { var image = document.getElementById ("myid"); image.style.visibility = "visible"; } setTimeout ("change ();", 5000); </script>
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Solo debe tener un elemento con una identificación particular en su página. getElementById devuelve un solo elemento, por lo que es probable que solo encuentre el primer elemento en la pantalla.

Puede darles una clase css con el mismo nombre o usar un atributo data-* para identificarlos, por ejemplo

 <img src="image2.jpg" data-image-group="bob" />

Y esto devolvería todos los elementos que coincidan con ese nombre de grupo:

 let matchedImages = document.querySelectorAll("[data-image-group='bob']") matchedImages .forEach(function(image) { image.style.visibility = "visible"; });

Alternativamente (y este podría ser el mejor enfoque), considere un enfoque CSS puro para lidiar con este problema de visualización y use una animación para ocultarlos inicialmente y luego desaparecer. Se puede encontrar una muestra de esto en esta respuesta:

Uso de CSS para un efecto de aparición gradual en la carga de la página

about 4 years ago · Juan Pablo Isaza Denunciar

0

Algunos problemas con su código. Primero te estás perdiendo = al establecer la clase de div . Entonces los id s deben ser únicos. Probablemente la solución más fácil después de solucionar los problemas menores es usar querySelectorAll y query img que son elementos secundarios de la clase .image que ya está configurada.

 function change () { var images = document.querySelectorAll(".image img"); images.forEach(image=>image.style.visibility = "visible"); } setTimeout (change, 5000);
 .image { visibility: hidden; } img{ width: 50px; }
 <div class="product1 image"> <img src="https://logos-download.com/wp-content/uploads/2019/01/JavaScript_Logo.png"> </div> <div class="product2 image"> <img src="https://blog.jeremylikness.com/blog/2019-03-05_typescript-for-javascript-developers-by-refactoring-part-1-of-2/images/1.jpeg"> </div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

El identificador de identificación debe ser único y aplicarse en un solo elemento. No puede especificar el mismo valor de id para más de 1 elemento. Puede, pero no funcionaría y es una mala práctica de HTML. Debe usar clases para tales casos. Puede dar un nombre de clase de image para todos sus elementos y luego seleccionarlos por nombre de clase usando JavaScript:

 <div class="product1 image"> <img src="image1.jpg" class="image"> </div> <div class="product2 image"> <img src="image2.jpg" class="image"> </div>
 <script type="text/javascript"> function change () { var images = document.getElementsByClassName("myid"); images.forEach(element => element.style.visibility = "visible"); } setTimeout ("change ();", 5000); </script>
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda