所以我一直试图解决这个问题。我很确定我缺少关键信息。我从JSON响应中获取了一些值。一个包含名单。另一个包含与名称列表对应的URL列表。
例如:
{"names":"john,casey,davey",
"nameUrls":[{
"johnURL":"http://url.com",
"caseyURL":"http://url.com",
"daveyURL":"http://url.com"]}
names = (data.names).split(',');
$.each(data.nameUrls, function(key, val) {
for (var i = 0; i < names.length; i++) {
$("#left").append(val[names[i] + "URL"]);
}
})
现在第一个通过就好了。但其余部分未定义。那么我做错了什么?在此先感谢您的帮助。
编辑:添加更多代码。
答案 0 :(得分:1)
修正了一些语法错误之后,这里是我在控制台中测试过的代码并且它正在运行。
var data = {
"names": "john,casey,davey",
"nameUrls": {
"johnURL": "http://url.com",
"caseyURL": "http://url.com",
"daveyURL": "http://url.com"
}
};
names = (data.names).split(',');
$.each(data.nameUrls, function (key, val) {
for (var i = 0; i < names.length; i++) {
$("#left").append(val[names[i] + "URL"]);
}
});
在上面的行中,我只修复了语法错误,但我相信这可能无法让你实现你想要的。请尝试以下代码并告知我们。
var data = {
"names": "john,casey,davey",
"nameUrls": {
"johnURL": "http://url1.com",
"caseyURL": "http://url2.com",
"daveyURL": "http://url3.com"
}
};
names = (data.names).split(',');
$.each(data.nameUrls, function (key, val) {
$("#left").append(val);
});
答案 1 :(得分:1)
在我看来,您应该重新构建数据,以便更容易地将其关联起来。
这样的事情对你有用吗?
data = [
{"name": "john", "url": "http://url.com"},
{"name": "casey", "url": "http://url.com"},
{"name": "davey", "url": "http://url.com"}
];
$.each(data, function(index, person) {
$('#left').append(person.url);
});
答案 2 :(得分:0)
var data = {
"names": "john,casey,davey",
"nameUrls": {
"johnURL": "http://url.com",
"caseyURL": "http://url.com",
"daveyURL": "http://url.com"
}
};
$.each(data.names.split(','), function (i, v) {
$("#left").append( v + " ==> " + data.nameUrls[v + 'URL'] );
});