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

197
Vistas
Forma correcta de insertar nuevos LI-s en la lista OL-s desde JS arr

Tengo algunas listas en HTML y una serie de datos en JS.

Quiero que se creen nuevos <li> s en cada <ol> de acuerdo con el primer elemento de <li> .

 const types = [{ name: "house", sq: 250, year: 2020 }, { name: "apartment", sq: 70, year: 2010 }, ]; /*search key*/ document.querySelectorAll('.specs').forEach(ol => { const name = ol.querySelector("#name").textContent; const search = name; /*object search*/ const res = () => { let result = [] for (const item of types) { if (item.name.includes(search)) { return item; } } return result } /* THIS SHOULD ADD NEW LIs */ var x = document.createElement("LI"); var t = document.createTextNode(`${res().sq}`); x.appendChild(t); document.getElementById("hhh").appendChild(x); });
 <ol id="hhh" class="specs"> <li id="name">apartment</li> </ol> <ol id="hhh" class="specs"> <li id="name">house</li> </ol>

Lo que tengo ahora es: que los nuevos <li> se crean solo en el primer <ol> .
El resultado incorrecto se muestra aquí:

el resultado incorrecto se muestra aquí

¿Cómo puedo solucionarlo para que cada elemento <li> se cree en el lugar correcto ( <ol> )?

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

¡Tenga en cuenta que las identificaciones deben ser únicas! Estás usando varias identificaciones varias veces. Por eso, su elemento siempre se incluirá en el primer elemento con el ID hhh .

Para resolver esto, debe proporcionar a ambos ul una identificación única. La forma más fácil sería usar como ID la clave del nombre:

 const types = [{ name: "house", sq: 250, year: 2020 }, { name: "apartment", sq: 70, year: 2010 }, ]; for (let i = 0; i < types.length; i++) { let el = types[i].name; let sq = types[i].sq; let year = types[i].year; document.querySelector(`#${el}`).insertAdjacentHTML('beforeend', `<li>${sq}</li>`); document.querySelector(`#${el}`).insertAdjacentHTML('beforeend', `<li>${year}</li>`); }
 <ol id="apartment" class="specs"> <li>apartment</li> </ol> <ol id="house" class="specs"> <li>house</li> </ol>

about 4 years ago · Santiago Trujillo 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