• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

145
Vistas
¿Qué estoy haciendo mal al intentar extraer datos de esta API y completar un menú desplegable de selección?

Estoy tratando de extraer el contenido de la biblia ASV de la API en biblia.api y completar mi menú desplegable de selección con los datos, sin embargo, estoy haciendo algo mal ya que los datos no están completando mi menú desplegable de selección. Sin embargo, sé que el punto final es correcto y carga el objeto json con el contenido de la biblia en mi consola.

 $(document).ready(function(){ let dropdown = document.getElementById('books'); dropdown.length = 0; let defaultOption = document.createElement('option'); defaultOption.text = 'Choose Book of the Bible'; dropdown.add(defaultOption); dropdown.selectedIndex = 0; const url = 'https://api.biblia.com/v1/bible/contents/ASV?key=aa43781d7b806b8d6764191dce895e10'; const request = new XMLHttpRequest(); request.open('GET', url, true); request.onload = function() { if (request.status === 200) { const books = JSON.parse(request.responseText); let option; for (let i = 0; i < books.length; i++) { option = document.createElement('option'); option.text = books[i].passage; option.value = books[i].passage; dropdown.add(option); console.log(books[i].passage); } } else { // Reached the server, but it returned an error } } request.onerror = function() { console.error('An error occurred fetching the JSON from ' + url); }; request.send();
almost 3 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Considera lo siguiente.

 $(function() { function loadSelect(target, url) { var dropdown = $(target); var defaultOption = $('<option>').html("Choose Book of the Bible").appendTo(dropdown); $.getJSON(url, function(results) { $.each(results.books, function(i, book) { $("<option>", { value: i }).html(book.passage).appendTo(dropdown); }); }); } loadSelect("#books", "https://api.biblia.com/v1/bible/contents/ASV?key=aa43781d7b806b8d6764191dce895e10"); });

Se considera una mejor práctica usar todo JavaScript o jQuery y no mezclarlos. Es posible que desee utilizar $.getJSON() .

almost 3 years ago · Juan Pablo Isaza Denunciar

0

Su problema es que está iterando sobre "responseText", que contiene solo un elemento llamado libros.

Para hacer lo que intenta lograr, debe usar algo así en su función request.onload :

 const data = JSON.parse(request.responseText); const books = data.books;
almost 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda