javascript - 使用存储在 txt 文件中的 JSON 输入创建下拉菜单

标签 javascript html json local-files

我正在尝试使用存储在 txt 文件中的 JSON 数据创建一个下拉列表。我的主要问题是读取数据(我将从 API 检索到的数据保存到 txt 文件中,因为它是大量数据,并且我想节省时间,不必每次数据时都向 API 发出请求需要)

*顺便说一句,不完全确定以 JSON 形式获取数据是最佳选择。此 API 支持的其他选项包括:CSV、JSONP、序列化 PHP 和 XML(如果其中之一更容易)

以下是 JSON 数据的形式(在classes.txt 中以字符串形式存储):

{
    "classes": [
        {
            "cat_num": "0001",
            "field": "OEB",
            "number": "363",
            "title": "Plant Diversity and Evolution"
        },
        {
            "cat_num": "0002",
            "term": "FALL",
            "bracketed": false,
            "field": "OEB",
            "number": "364",
            "title": "Ecological Physiology of Microbes"
        }
    ]
}

这是我迄今为止尝试使用此 txt 文件填充下拉菜单的代码

$(document).ready(function(){  
    var url = "classes.txt";
    $.get(url, function(data) {
    var obj = eval('(' + data + ')');
    $.each(obj, function(i, option){    
        $('#department').append($('<option/>')
                        .attr("value",option.cat_num)
                        .text(option.field));
      );
  );

    });

我还意识到,我需要以某种方式确保“字段”在我的下拉列表中是唯一的(即,如果 3 个类属于“OEB”字段,我只希望 OEB 在我的下拉列表中出现一次,不是3次)

预先感谢您提供的任何帮助!

最佳答案

这可能会有所帮助

$(document).ready(function(){
    $.getJSON('classes.txt', function(data) {

      $.each(data, function(i, option){        
            console.log(option.title)
            $('#department').append($('<option/>').attr("value",option.cat_num).text(option.title));
      });
    });
});

关于javascript - 使用存储在 txt 文件中的 JSON 输入创建下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13760308/

相关文章:

java - 如果存在重复的键,如何将键的值添加到 HashMap 中的另一个键

javascript - 将内部 json 数组与空格组合,将外部数组与换行符组合

javascript - Javascript 中的对象类型

javascript - 作为参数传递的 Sinon 匿名 stub

javascript - 如何将变量传递给 onClick 事件处理程序?

javascript - 使用名称 jquery 按索引获取 id 值

javascript - 挂钟上时针每秒旋转的 Angular 是多少?

javascript - 为什么 php 网站的 javascript 文件中不断出现恶意软件问题

html - Safari 浏览器文本渗出 div

php - 在 Javascript 中使用 PHP 中的数组值