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

175
Vistas
No se puede agregar un selector con opciones a DOM con la API de búsqueda

esta es mi primera pregunta aquí, así que estoy un poco nervioso;) Mi problema es cómo agregar un selector con opciones a DOM. La pregunta principal es que tengo una API para obtener datos y el valor de las opciones debe agregarse desde esta API. Al principio, creo un botón para iniciar la función, pero luego el código no funciona. Aquí está mi código:

 const btn = document.createElement("button"); btn.setAttribute("id", "getCurrencies"); btn.innerHTML = "Click me!"; document.body.appendChild(btn); btn.addEventListener("click", (e) => { fetch("https://api.frankfurter.app/latest") .then((response) => response.json) .then((data) => { const selectEL = createElement("select"); const currencies = Object.entries(data.rates).forEach(([code, value]) => { const optionEl = createElement("option"); // optionEl.setAttribute("value", code); optionEl.innerHTML = ($[code], $[value]); selectEL.appendChild(optionEl); }); document.body.appendChild(selectEL); }) .catch((err) => console.log(err)); });
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Tienes varios errores. Comience a depurar su código pieza por pieza. Si primero observa la consola, obtendrá el error "ReferenceError: createElement no está definido"

  1. Las llamadas createElement para seleccionar y la opción no funcionarán, le falta DÓNDE en el documento para crearlas. document.createElement funciona como en la primera línea de código.

Luego los corrige y obtienes el siguiente error "Error de tipo: no se puede convertir indefinido o nulo en objeto"

  1. No está llamando a response.json(). No hace la conversión sin llamar a la función. Entonces dará typeError.

Luego arreglas la llamada json. Ahora obtendrá el error "ReferenceError: $ no está definido". Esto significa que $ no está definido y el transpilador no tiene idea de qué hacer. Mirando tu código:

  1. Su conjunto de HTML interno es incorrecto. Podrías usar es6 string optionEl.innerHTML = ${code} - ${value} ;

Ahora empieza a funcionar.

  1. Dividiría el código en funciones para que sea más fácil de leer.

Así que empieza por depurar desde el principio. Elimine las líneas de código y lea lo que la consola imprime por usted.

Ver ejemplo de trabajo sin división de código: https://codepen.io/shnigi/pen/NWvNwXQ

about 4 years ago · Juan Pablo Isaza Denunciar

0

Deberías hacerlo así:

 $(document).on('click','#getCurrencies',function(){ // ... });

Esto vincula un evento de clic al documento y todos los elementos secundarios dentro de él. Este método se conoce como gestión delegada de eventos.

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