我使用'jItems'
生成了一个JavaScript对象(称之为$.getJSON
)。在页面上,我有一个jItems中的项目适合的类别列表。我的愿望是单击一个类别并触发一个功能,只显示该类别中的项目。使用getJson
或jquery的each()
或find()
从jItems
中提取正确的项目会更好吗?
答案 0 :(得分:1)
JSON之美是你不需要解析它。它已经是一个JavaScript对象了。您需要做的是遍历值并为您的类别列表构建输出。
如果没有看到您的JSON结构,我就无法再提出任何建议。
答案 1 :(得分: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循环实际上更好,因为这样更快。 $ .each()无论如何都是for循环的包装器。 (因此例子:D)