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

jQuery搜索JSON文件无结果展示,如何修改实现显示科目全部信息

代码修复点

你不需要更换搜索实现方式,仅需要在现有代码基础上调整3处问题即可正常运行:

  • JSON结构匹配:你返回的data外层包含Subjects字段,遍历搜索时需要取data.Subjects而非直接遍历data
  • DOM选择器匹配:HTML中的搜索结果区域仅设置了class="searchdisplay",JS中使用的ID选择器#searchdisplay找不到对应元素,需要给展示区域增加id属性
  • 结果输出逻辑完善:原有逻辑仅输出科目名称,需要补充其他字段的拼接逻辑

修改后的完整代码

HTML代码

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="form-group">
  <input  type="search"
    class="form-control"
    name="searchInput2"
    id="searchInput2"
    placeholder="输入科目名称搜索"
  />
</div>
<!-- 补充id属性匹配JS选择器 -->
<div class="searchdisplay" id="searchdisplay"></div>

JS代码

$(document).ready(function() {
  $.getJSON('subjects.json', function(data) {
    $("#searchInput2").keyup(function () {
      var searchField = $(this).val().trim();
      if (searchField === "") {
        $("#searchdisplay").html("");
        return;
      }
      var regex = new RegExp(searchField, "i");
      var output = '<div class="row">';
      // 修改遍历对象为科目数组data.Subjects
      $.each(data.Subjects, function (key, val) {
        if (val.name.search(regex) != -1) {
          // 修复原有标签语法错误,补充所有字段输出逻辑
          output += '<div class="col-12 mb-3 border p-3">';
          output += `<h5>${val.name}</h5>`;
          output += `<p>科目代码:${val.Code}</p>`;
          output += `<p>学期:${val.Semester}</p>`;
          output += `<p>课程类型:${val.Type.join('、')}</p>`;
          output += `<p>授课教授:${val.Professor}</p>`;
          output += `<p>学分:${val.Credits}</p>`;
          output += `<p>成绩:${val.Grade}</p>`;
          output += `<p>关键词:${val.Keywords.join('、')}</p>`;
          output += `<p>授课形式:${val.Lecture.join('、')}</p>`;
          output += `</div>`;
        }
      });
      output += "</div>";
      $("#searchdisplay").html(output);
    });
  });
});

注意:如果是本地直接打开HTML文件运行,需要通过本地服务(比如VSCode的Live Server插件、本地nginx)访问,否则$.getJSON会因为浏览器跨域限制无法读取本地JSON文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:54:03