我已经生成的JavaScript对象(称它为'jItems'
)使用$.getJSON
。 在页面上,我有一个在jItems的物品放入类别列表。 我的愿望是点击一个类别和触发功能,只显示该类别中的项目。 它会更好使用getJson
或jQuery的each()
或find()
来拉从右侧项目jItems
?
Answer 1:
这一切都取决于你的数据看起来的样子,但是这可能会帮助你,我认为:
var jsonCats = [
{"id": "category1", "items": [{"iid":"item1"}, {"iid":"item2"}, {"iid":"item3"}]},
{"id": "category2", "items": [{"iid":"item4"}, {"iid":"item5"}, {"iid":"item6"}]},
{"id": "category3", "items": [{"iid":"item7"}, {"iid":"item8"}, {"iid":"item9"}]},
{"id": "category4", "items": [{"iid":"item0"}]}
];
$.each(jsonCats, function(key, value) {
var category = $("<li>" + this.id + "</li>");
var items = this.items;
$("#categories").append(category);
category.click(function() {
$("#items").empty();
for (var j in items) {
var item = $("<option>" + items[j].iid + "</option>");
$("#items").append(item);
}
});
});
看一个例子: http://jsfiddle.net/tive/U63EY/
编辑:现在,我看了你的问题又来......它实际上是更好地使用for循环,因为这是更快的。 该$。每个()是for循环的包装呢。 (因此,例如:d)
http://jsperf.com/jquery-each-vs-for-loop/6
Answer 2:
JSON的优点是你不需要对它进行解析。 这已经是一个JavaScript对象。 什么,你需要做的就是通过价值循环,并建立类别列表输出。
没有看到你的JSON结构,我不能做任何更多的建议。
文章来源: What's the best way to parse a JSON string?