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

102
Vistas
Asignación de imágenes de fondo a una función querySelectorall JS

así que estoy tratando de asignar imágenes de fondo al div sin el uso de CSS y lo escribo como 6 veces, así que este es el HTML:

 var arImages = ["Chicken_BannerIcon2-1.png", "Chicken_BannerIcon3-1.png", "Chicken_BannerIcon4-1.png", "Chicken_BannerIcon5-1.png", "Chicken_BannerIcon6-1.png", "Chicken_BannerIcon7-3.png", ] var menu = document.querySelectorAll(".grid > div::before") let bg = arImages.map((element) => { return element; }) let newArray = Array.from(menu).map((item) => { var img = document.createElement("img") img.src = bg item.appendChild(img) return item })
 <div class="grid pt-3"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> </div>

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

  1. Su querySelectorAll no encontró nada debido a ::before , así que lo eliminé
  2. El img.src = bg no funcionó porque bg era lo mismo que arImages y necesitará un solo índice en lugar de la matriz completa (consulte el punto 5)
  3. Reemplacé el map a un forEach ya que no necesita un valor de retorno
  4. Se eliminó Array.from porque forEach existe en la lista de nodos
  5. Usando el index proporcionado por foreach para obtener el índice de arImages

 var arImages = [ "Chicken_BannerIcon2-1.png", "Chicken_BannerIcon3-1.png", "Chicken_BannerIcon4-1.png", "Chicken_BannerIcon5-1.png", "Chicken_BannerIcon6-1.png", "Chicken_BannerIcon7-3.png", ] var menu = document.querySelectorAll(".grid > div") menu.forEach((item, index) => { var img = document.createElement("img") img.src = arImages[index] item.appendChild(img); })
 <div class="grid pt-3"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> </div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Ni siquiera necesita predefinir sus elementos HTML. Puede map mediante programación sobre la matriz y crear una matriz de cadenas HTML utilizando los datos de cada elemento, join y luego aplicar esa cadena HTML completa al contenedor.

 const arImages=['https://dummyimage.com/50x50/efefef/000000&text=Image1','https://dummyimage.com/50x50/efefef/000000&text=Image2','https://dummyimage.com/50x50/efefef/000000&text=Image3','https://dummyimage.com/50x50/efefef/000000&text=Image4','https://dummyimage.com/50x50/efefef/000000&text=Image5','https://dummyimage.com/50x50/efefef/000000&text=Image6']; // Just select the container const grid = document.querySelector('.grid'); // `map` over the array, and for each element return // an HTML string where the element has background that // matches the element const html = arImages.map((img, i) => { const style = `background-image: url(${img}); width: 50px; height: 50px`; return `<div style="${style}">${i + 1}</div>`; }); // Because `map` returns an array we `join` it up // into one string, and then add it to the container grid.insertAdjacentHTML('beforeend', html.join(''));
 <div class="grid pt-3"></div>

Documentación adicional

  • Plantilla/literales de cadena

  • insertAdjacentHTML

about 4 years ago · Juan Pablo Isaza Denunciar

0

Al principio, elimine el selector ::before .

Luego, solo necesita agregar el índice a su js y luego hacer referencia a su matriz de imágenes de esta manera:

 var arImages = [ "Chicken_BannerIcon2-1.png", "Chicken_BannerIcon3-1.png", "Chicken_BannerIcon4-1.png", "Chicken_BannerIcon5-1.png", "Chicken_BannerIcon6-1.png", "Chicken_BannerIcon7-3.png" ]; document.querySelectorAll(".grid > div").forEach((item, index) => { var img = document.createElement("img"); img.src = arImages[index]; item.appendChild(img); });
 <div class="grid pt-3"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> </div>

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