1

我正在尝试使用存储在 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 次)

提前感谢您提供的任何帮助!

4

1 回答 1

0

在这里,这可能会有所帮助

$(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));
      });
    });
});
于 2012-12-07T10:09:38.067 回答