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

159
Views
¿Cómo generar HTML usando una plantilla literal con datos provenientes de un objeto literal en JavaScript?

Como dice el título, estoy tratando de generar dinámicamente mis botones HTML usando datos literales de objetos y usarlos para llenar el literal de la plantilla.

He estado intentando sin suerte y no puedo encontrar una respuesta sobre esto ...

Por favor, compruebe el código a continuación:

 const dockButtons = { 'list': [ { 'title': 'Search', 'icon': '<i class="bi bi-search"></i>', 'classes': 'dock-btn dock-btn-light', 'id': 'search-links-app-icon', 'attributes': 'type="button" accesskey="s"', 'onclick': '', 'access': '', }, { 'title': 'Notes & PDU Assist', 'icon': '<img class="dock-imgs" src="../assets/links-favicons/assist.svg">', 'classes': 'collapse dock-btn dock-btn-blue ms-2', 'id': 'notes-and-pdu-assist-app-icon', 'attributes': 'type="button"', 'onclick': 'closeMainCardsList();', 'access': '', }, ] }; const dockButtonsTemplate = `<button class="${classes} ${access}" id="${id}" onclick="${onclick}" ${attributes} title="${title}">${icon}</button>`; const generateDockButtons = dockButtons.list.map(dockButtonsTemplate); document.getElementById("dock-buttons-data").innerHTML = generateDockButtons.join("")
 <div id="dock-buttons-data"></div>

También me gustaría que fuera posible crear un condicional en la plantilla, donde si, por ejemplo, el valor del objeto onclick está en blanco, no lo cree en el literal de la plantilla.

Está funcionando (excepto la condición) si incluyo estas líneas:

 const dockButtonsTemplate = ({ title, icon, classes, id, attributes, onclick, access }) =>

Esto es algo que aprendí a usar recientemente, por lo que no puedo descifrar cómo eliminar el segundo fragmento anterior del tutorial del que lo obtuve. Me gustaría que busque directamente esos objetos si es posible.

También otra pregunta, ¿cuál es más rápido de cargar, si tengo, digamos, más de 3000 botones generados a partir de una plantilla O más de 3000 botones HTML codificados sin usar esta plantilla?

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

0

Puedes probar este código

 const btnList = dockButtons .lists; document.getElementById('dock-buttons-data').innerHTML = `${btnList.map((btn) => <button class="${btn.classes} ${btn.access}" id="${btn.id}" onclick="${btn.onclick}" ${btn.attributes} title="${btn.title}">${btn.icon}</button>)}`

O más de 3000 botones HTML codificados es más rápido que más de 3000 botones generados a partir de una plantilla

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!