Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

208
Views
Js: recorra la matriz para crear entradas y valores que solo llenen el valor de entrada del último elemento

Tengo un div con id="inputs" en html y el siguiente código en js:

 let paises=[ {pais: "Honduras",scripttag:`<script src="perro loco come baba"> 'cha cha'` }, {pais: "Chile",scripttag:"perropapa"}, {pais: "Madagascar",scripttag:"otro"} ] let inputDiv=document.getElementById("inputs") for(let p of paises){ if(p.scripttag){ inputDiv.innerHTML+=`<input disabled id="` + p.pais + `">` let inputPais=document.getElementById(p.pais) inputPais.value=p.scripttag } }

Si el elemento de la matriz paises tiene una propiedad de etiqueta de secuencia de comandos, se crea una entrada y el valor se completa con contenido de etiqueta de secuencia de comandos.

Las entradas se crean correctamente, el problema es que en la página todas las entradas están vacías excepto la última creada (en este caso, la entrada con id Madagascar se llena con "otro")

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Su problema es que no está creando un nuevo elemento cada vez que desea agregar una nueva entrada.

En lugar de agregar html a divs como ese, puede usar createElement .

 let paises=[ {pais: "Honduras",scripttag:`<script src="perro loco come baba"> 'cha cha'` }, {pais: "Chile",scripttag:"perropapa"}, {pais: "Madagascar",scripttag:"otro"} ] let inputDiv=document.getElementById("inputs") for(let p of paises){ if(p.scripttag){ const newInput = document.createElement('input') newInput.id = p.pais newInput.value = p.scripttag inputDiv.appendChild(newInput) } }

De esta manera, está agregando un nuevo elemento al div en cada bucle. En lugar de sobrescribir el elemento anterior. También creo que tiene más control sobre las propiedades de las entradas usando la manipulación DOM en lugar de escribir todo en una cadena y concatenar.

about 4 years ago · Juan Pablo Isaza Report

0

Otra opción es que podría establecer el valor con el HTML que está generando.

 let paises=[ {pais: "Honduras",scripttag:`<script src='perro loco come baba'/> 'cha cha'` }, {pais: "Chile",scripttag:"perropapa"}, {pais: "Madagascar",scripttag:"otro"} ] let inputDiv=document.getElementById("inputs") for(let p of paises){ if(p.scripttag){ inputDiv.innerHTML+=`<input disabled id="${p.pais}" value="${p.scripttag}">` } }
 <div id='inputs'></div>

about 4 years ago · Juan Pablo Isaza Report

0

 let paises=[ {pais: "Honduras",scripttag:`<script src="perro loco come baba"> 'cha cha'` }, {pais: "Chile",scripttag:"perropapa"}, {pais: "Madagascar",scripttag:"otro"} ] let inputDiv=document.getElementById("inputs") for(let p of paises){ if(p.scripttag){ inputDiv.innerHTML= inputDiv.innerHTML +`<input disabled='true' id="` + p.pais + `" value='${p. scripttag}'/>` } }
 <div id="inputs"></div>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!