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

884
Visualizações
Mostrar imágenes de JSON Array usando JavaScript

Traté de mostrar una imagen de la carpeta de imágenes en la matriz JSON a Javascript, pero no estoy seguro de si estoy obteniendo el camino correcto. Cuando ocurre el evento de clic, todo funciona, excepto que la imagen no se muestra en <img id "imagen">, la imagen no se muestra en la sección img de mi HTML.

Intenté cambiar la ruta a ../Images/room_1.jpg pero aún no funciona.

FYI: tengo una carpeta separada que almacena imágenes, tanto json como js se almacenan en la carpeta javascript. ¿Debo poner el mismo archivo de imagen en la carpeta javascript?

html

 <h2>Select a Hotel</h2> <ul class ="hotels"> <li><a href="#" id="marriott"> Marriott Hotel Rooms</a></li> </ul> <h2 id="hotelName">Hotel</h2> <h3>Adress: <span id="address"></span></h3> <img id="picture">

Hotel.json

 { "hotels": [ { "name": "Marriott", "address": "098 hollywood Street", "picture": "room_1.jpg" }

JS

 async function getHotelData() { try { const response = await fetch('Javascript//hotel.json') return await response.json() } catch (error) { console.error(error) } } let hotelData = {} getHotelData().then(data => hotelData = data) const hotelEvent = document.querySelectorAll("a").forEach(a => { a.addEventListener('click', hotelInfo ) }) function hotelInfo(event) { let hotelChoice = hotelData.hotels.find(hotel => { return event.target.id === hotel.name.toLowerCase() return event.target.id === hotel.address.toLowerCase() return event.target.id === hotel.picture.toLowerCase() }) console.log(hotelChoice) document.querySelector("#hotelName").textContent = `${hotelChoice.name} Hotel` document.querySelector("#address").textContent = `${hotelChoice.address}` document.querySelector("#picture").innerHTML = `${hotelChoice.picture}` }
about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

Debe establecer la propiedad src en la imagen en lugar de establecer su innerHTML .

Una etiqueta img normal se vería así:

 <img id="image" src="/path/to/image.png">

Necesitas replicar lo mismo usando JavaScript:

 document.querySelector("#picture").innerHTML = `${hotelChoice.picture}` // Becomes document.querySelector("#picture").src = `${hotelChoice.picture}`

Además, preste atención a la ruta de la imagen dentro del archivo JSON, debe ser relativa al documento HTML que está utilizando, no al de JavaScript. Entonces, si sus imágenes se almacenan dentro de un directorio separado, debe cambiar la ruta dentro de su archivo JSON en consecuencia.

Ejemplo: si su archivo HTML está en la raíz del proyecto y hay una carpeta de images , su JSON debería ser algo como:

 { "hotels": [ { "name": "Something", "address": "Some Street, 12", "picture": "images/picture_name.jpg" } ] }
about 4 years ago · Santiago Gelvez 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