You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用biblia.api拉取数据填充select下拉框失败,哪里操作有误?

问题原因
  • 你解析后的books是接口返回的完整根对象,本身不是数组,没有length属性,所以你写的for循环根本不会执行。实际接口返回的所有圣经书卷数据存储在根对象的books数组字段中,需要先提取该字段再遍历。
  • 你取的books[i].passage字段不存在,单卷书的名称对应字段是name,书卷唯一标识对应字段是passageID,你可以根据需求选择赋值给option的文本和值。
修复后的完整代码
$(document).ready(function(){
  let dropdown = document.getElementById('books');
  dropdown.length = 0;

  let defaultOption = document.createElement('option');
  defaultOption.text = '选择圣经书卷';

  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) {
      // 先取完整响应对象,再提取books数组
      const res = JSON.parse(request.responseText);
      const books = res.books;
      let option;
      for (let i = 0; i < books.length; i++) {
        option = document.createElement('option');
        // 用name字段做显示文本,passageID做option值
        option.text = books[i].name;
        option.value = books[i].passageID;
        dropdown.add(option);
      }
     } else {
      console.error('接口请求异常,状态码:' + request.status);
    }   
  }

  request.onerror = function() {
    console.error('从 ' + url + ' 获取JSON数据时发生错误');
  };

  request.send();
});

内容的提问来源于stack exchange,提问作者lreystudios

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:15:03