我有以下数组。
[searchEngineOrder] => Array
(
[0] => keyword
[1] => Google
[2] => Yahoo
[3] => Bing/MSN
)
[Datagrid] => Array
(
[Brand] => Array
(
[1] => Array
(
[keyword] => About Jetwing Hotels Sri Lanka
[Google] => 1
[Yahoo] => 1
[Bing/MSN] => 1
)
[2] => Array
(
[keyword] => Dining at Jetwing Kurulubedda
[Google] => 1
[Yahoo] => 1
[Bing/MSN] => 1
)
) )
这是php数组。 (我使用json编码)
现在我要创建表格。我使用以下代码。
var headers = data.searchEngineOrder;
var trs = '<tr><td>Brand</td></tr>';
var brands = data.Datagrid.Brand;
for (x in brands) {
trs += '<tr>';
for (y in headers) {
// trs += '<td>'+ brands[x].keyword +'</td>'; This is work
trs += '<td>'+ brands[x].headers[y] +'</td>'; //This is not work
}
trs += '</tr>';
}
$('#keyword-table tbody').html(trs);
如上面的代码brands[x].keyword
或品牌[x] .Google正在运作。但是,当我使用关键字或Google作为变量时,它不起作用。
请帮帮我。我该怎么做?
答案 0 :(得分:0)
您正在寻找的是用字符串括起来的符号:
brands[x]["keyword"]
在JavaScript中,您可以通过两种方式访问对象属性(这些属性):
使用点表示法和文字属性名称,例如foo.property
。
使用括号表示法和字符串属性名称,例如foo["property"]
。
在第二种情况下,字符串不必是文字字符串,它可以是任何表达式的结果 - 包括变量引用。所以:
var k = "keyword";
var value = brands[x][k];
答案 1 :(得分:0)
你需要:
brands[x][headers[y]];
即。您使用密钥brand
获取x
,然后使用密钥header
查找y
,然后使用 名称作为变量名称brand
。