我正在尝试使用存储在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次)
提前感谢您提供的任何帮助!
答案 0 :(得分: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));
});
});
});