我知道我在这里错过了一些非常简单的东西,但我现在已经找了一段时间并且没有任何解决方案的运气。
我有一些看起来像这样的json数据
post[{
//various post data
categories": {
"Rants": {
"name": "Rants",
"slug": "rants",
"description": "",
"post_count": 9
}]
我正在尝试使用each()
循环
$.each(response.posts[0].categories, function (index) {
alert(response.posts[0].categories.index.slug);
});
当我调用alert(response.posts[0].categories.rants.slug);
时,它会起作用,但当我尝试使用索引作为键时,它不起作用。
任何想法?
答案 0 :(得分:2)
当你这样写:
alert(response.posts[0].categories.index.slug);
您正在尝试读取名为categories
的{{1}}属性,该属性不存在。如果您真的想要阅读每个元素,您必须编写以下内容:
"index"
答案 1 :(得分:1)
$.each(response.posts[0].categories, function(name, category) {
alert(category.slug);
});
答案 2 :(得分:1)
应该是
alert(response.posts[0].categories[index].slug);
更多细节
jQuery为您解决此问题。 .each()
回调函数的第一个参数是循环当前迭代的索引。第二个是当前匹配的DOM元素So:
$('#list option').each(function(index, element){
alert("Iteration: " + index)
});
这是each
api链接
http://api.jquery.com/each/
答案 3 :(得分:0)
这里不需要jQuery。看起来它只是妨碍你。只需:
alert(response.posts[0].categories.Rants.slug);
或循环遍历所有“咆哮”(category
中的categories
):
for (var category in response.posts[0].categories) {
alert(response.posts[0].categories[category].slug)
}