Javascript 如何使用web语言将一个变量转换为另一个变量的名称
我缺乏这些语言的一些基础知识,所以这可能是一个简单的问题 我从一个ajax调用接收一个json编码的对象数组。在开始时,我添加了一些我需要的元素:Javascript 如何使用web语言将一个变量转换为另一个变量的名称,javascript,jquery,json,ajax,concatenation,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
array_unshift($data, array('nbr' => 6,'Col1' => 'Company name',
'Col2' => 'Email','Col3' => 'Adress','Col4' => 'City',
'Col5' => 'Code','Col6' => 'Country));
在ajax的success:functionmsg中,我希望迭代这些元素,使它们成为表的标题:
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[],因为我想要访问的所有信息都在msg[0]中
使用msg[0]['Col'+i]非常有效。如果您试图动态访问属性名,可以使用属性名为字符串的索引器:
$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]对象上该名称的属性
我没有收到任何错误,但它返回的不是公司名称、电子邮件或其他任何内容,而是未经罚款的。我花了一些时间来回答,因为我试图解决这个问题,但我找不到这个问题的根源。有什么想法吗?补充:我检查了消息是否包含正确的数据,每个消息包含两美元和一个警报。这方面没有问题。@Alexanderivara在循环中时,您能提供对象结构吗?e、 例如,设置断点,在Chrome on windows中打开控制台窗口F12,然后键入msg[i]。这将向您显示对象结构,并允许您展开或折叠属性。很抱歉,我尝试了展开或折叠属性,但包含循环的文件未列在调试器可用的源文件中。我没有时间学习如何使用firefox的开发者界面,所以调试器对我来说仍然是一种奢侈品。我在回答时发现了这个问题!你的回答很有用,谢谢。我试着从1开始联系msg[I]。但是看看msg的结构,我意识到我添加的所有信息都在msg[0]中,不需要迭代该部分!这解决了一切。非常感谢你。
$foo=$foo+'<th>'+msg[i]['Col' + i]+'</th>';