如何使用Web语言将变量连接到另一个变量的名称

时间:2017-02-07 23:08:18

标签: javascript jquery json ajax concatenation

我缺乏这些语言的一些基础知识,所以这可能是一个简单的问题。

我从ajax调用接收到json编码的对象数组。在开始时,我添加了一些我需要的元素:

array_unshift($data, array('nbr' => 6,'Col1' => 'Company name', 
'Col2' => 'Email','Col3' => 'Adress','Col4' => 'City',
'Col5' => 'Code','Col6' => 'Country));

在ajax的success:function(msg)中,我想迭代这些元素,使它们成为表格的标题:

var qtt=msg[0].nbr;
$foo='<table>';
for (var i = 1; i<qtt; i++) {
    $foo=$foo+'<th>'+msg[i].Col+i+'</th>';
}
$foo=$foo+'</table>;

我想访问msg的第i个元素,我知道它被命名为Col&#39; + i。对我来说,它同时看起来既简单又困难。

我只是不知道该怎么做,不知道。欢迎任何帮助。

修改: 使用firebug,我可以回复ajax调用的答案。如果它可以在这里帮助你(元素是法语,但它正是我之前谈论的):

[{"nbr":6,"Col1":"Nom soci\u00e9t\u00e9","Col2":"Email","Col3":"Adresse",
"Col4":"Ville","Col5":"Code postal","Col6":"Pays"},
{"Soc_Nom":"foo1","Soc_Email":"bar1","Soc_Adresse":"foobar1", "Vil_Nom":
"Foofoo1","Vil_Code_Postal":"1000","Pys_Nom":"Belgique"},{"Soc_Nom":
"Foo2","Soc_Email":"Bar2","Soc_Adresse":"foobar2","Vil_Nom":"Foofoo2",
"Vil_Code_Postal":"2000","Pys_Nom":"Belgique"}]

Ansewer: 因为我想访问的所有信息都在msg [0]中,所以无需遍历msg []。

使用msg [0] [&#39; Col&#39; + i]完美无缺。

1 个答案:

答案 0 :(得分:1)

如果您尝试动态访问属性名称,可以使用属性名称为字符串的索引器:

$foo=$foo+'<th>'+msg[i].Col+i+'</th>';

成为

$foo=$foo+'<th>'+msg[i]['Col' + i]+'</th>';

msg[i].Col + i(您的原始代码)正在寻找名为Col的属性,并尝试将Col的值添加到i的值。

第二个示例是构建动态属性名称'Col' + i,并使用括号访问msg[i]对象上该名称的属性。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors