用百分号打印到html的Javascript

时间:2013-07-17 19:35:01

标签: javascript

我通过XHR请求获得了一堆JSON数据,并获得了以下数据:

{"data_list" : [[1, "Title1", "0.54%"], [2, "Title2", "2.98%"]]}

然后我尝试循环遍历该数据,并将其放在console.log中的控制台中:

var len = json.data_list.length;
for(var i = 0; i < len; i++)
{
   console.log(json.data_list[i]);
}

但我没有得到相同的百分比:

[1, "Title1", "0.24%"]
[2, "Title2", "0.00%"] 

任何人都知道为什么我会获得前两个字段的正确数据,但不是相同的百分比?即使我拿出JSON响应中的百分号,我仍然得到错误的数字。

假设变量有效,我正在使用一个将json变量映射到json.data_list的库。

我不是很聪明

某处,XHR请求被Dojo破坏了。谢谢你的帮助!

2 个答案:

答案 0 :(得分:3)

“data-list”是您希望它执行的无效标识符,因此它被解释为减法。尝试使用括号表示法:

json["data-list"].length

json["data-list"][i]

DEMO: http://jsfiddle.net/7bgvV/

答案 1 :(得分:2)

var len = json.data-list.length;看起来像是对JavaScript VM的减法操作。您需要使用此方法:json['data-list'].length.

如果您无法控制返回此数据的方法,请尝试以下操作:

var ajaxStr = '{"data-list" : [[1, "Title1", "0.54%"], [2, "Title2", "2.98%"]]}]';
ajaxStr = ajaxStr.replace(/\"([\w]+)-([\w]+)\"/g, "\"$1$2\"");