Jquery中的简单问题 - 但是解决方案对我来说并不清楚
$( document ).ready(function() {
handleJson();
});
function handleJson(){
$.getJSON("fileList.json", function(json) {
$.each(json, function(idx, obj) {
console.log(json.fileurls[idx]);
});
});
}
这是我的json
{
"fileurls":[
"file y 2014-09-17 10_43_40",
"file x 2014-09-15 10_15_32"
]
}
控制台中的打印结果未定义
答案 0 :(得分:1)
这不起作用,因为你正在调用fileurls [idx],但是填写了IS idx。 idx是数组的索引,obj是它的值。
在你的JSON中,数组的索引是'fileurls',它包含两个文件名条目。
要遍历文件名,您必须遍历数组本身,因此您必须添加第二个循环。试试这个:
function handleJson(){
$.getJSON(fileList.json, function(json) {
$.each(json, function(idx, obj) {
$.each(obj, function(idx2, obj2) {
console.log(obj2);
});
});
});
}
祝你好运 博尔德答案 1 :(得分:0)
如果想要明智地访问,你不需要迭代,只需这样写:
$.getJSON("fileList.json", function(json) {
console.log(json.fileurls[0]);
});
击> <击> 撞击>
您的数组是json.fileurls
,json
是单个对象,因此在json.fileurls
上进行迭代:
$.each(json.fileurls, function(idx, obj) {
console.log(json.fileurls[idx]);
});
答案 2 :(得分:0)
问题可能是由于您尝试循环json对象的每个属性而不是fileurls
数组。试试这个:
.each(json.fileurls, function(idx, obj) {
console.log(json.fileurls[idx]);
});
虽然obj
参数实际上是你想要的值,所以你可以这样更容易:
.each(json.fileurls, function(idx, obj) {
console.log(obj);
});
答案 3 :(得分:0)
OBJ将为您提供“fileurls”,但如果您想分别拥有“文件y 2014-09-17 10_43_40”和“file x 2014-09-15 10_15_32”元素,则应再次迭代OBJ
$.getJSON("fileList.json", function(json) {
$.each(json, function(idx, obj) {
$.each(obj, function(count, element) {
console.log(element);
});
});
});