Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery为每个对象动态获取一个值?_Javascript_Jquery_Json - Fatal编程技术网

Javascript 如何使用jquery为每个对象动态获取一个值?

Javascript 如何使用jquery为每个对象动态获取一个值?,javascript,jquery,json,Javascript,Jquery,Json,所以我一直在想办法解决这个问题。我很确定我缺少一条关键信息。我从JSON响应中获取一些值。其中一个包含名称列表。另一个包含与名称列表相对应的URL列表 例如: {"names":"john,casey,davey", "nameUrls":[{ "johnURL":"http://url.com", "caseyURL":"http://url.com", "daveyURL":"http://url.com"]} names = (data.names

所以我一直在想办法解决这个问题。我很确定我缺少一条关键信息。我从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"]);
    }
    })
现在第一个通过得很好。但其余的都没有定义。那么我做错了什么?提前感谢你的帮助


编辑:添加更多代码。

修复一些语法错误后,下面是我在控制台中测试的代码,它正在工作

  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"]);
        }
    });

在我看来,您应该重新构造数据,以便数据之间更容易关联

你喜欢这个工作吗

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);
});

不幸的是,它似乎不起作用。我继续在控制台中获取未定义的。还有其他想法吗?是的,我后来注意到了,然后我添加了答案的后半部分。你试过了吗?还是两者都失败了?好消息:很乐意帮忙。
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'] );
});
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);
});