还在学习......再次抱歉,如果这听起来很愚蠢:
我有2个变量“timestamps”和“clicks”以及一串数字:
var myData = {
"timestamps":[
1362096000000,1362355200000,1362441600000,1362528000000
],
"clicks":[
[
1,2,3,4
]
};
我正在尝试将其重组为这种格式的数组:
[1362096000000,1],
[1362355200000,2],
[1362441600000,3],
[1362528000000,4],
以下是我目前的情况:http://jsfiddle.net/3UsP6/1/
使用Javascript:
var myData = {"timestamps":[1369008000,1369094400,1369180800,],"clicks":[1,2,3,]};
var output = test;
for (var i = 0, l = myData.timestamps.length; i < l; i++)
{
output.push([myData.timestamps[i], myData.clicks[i]]);
}
HTML:
<body onload="javascript:alterText()">
<a id="test"></a>
</body>
我需要将变量输出到页面正文中,但我无法显示它。我做错了什么?
答案 0 :(得分:0)
在其他任何事情之前,如果您正在调试,最好使用浏览器的调试器(在大多数浏览器中为F12)。使用console.log()
输出到控制台以查看值。断点会更好,因为它们会暂停代码,您可以在那一刻检查值。
现在,因为你犯的错误:
output
test
为<a>
。你不能做push
,因为那不是一个数组。你可以做的是创建一个数组,用数值填充它,并做一个JSON.stringify
把它变成一个字符串。
您应该使用document.get*
函数,例如document.getElementId()
来引用DOM元素。虽然浏览器确实为id
s的元素公开了全局变量,但你应该避免这种情况。
function alterText() {
var myData = {
"timestamps": [1369008000, 1369094400, 1369180800],
"clicks": [1, 2, 3]
};
var output = [];
var link = document.getElementById('test');
for (var i = 0, l = myData.timestamps.length; i < l; i++) {
output.push([myData.timestamps[i], myData.clicks[i]]);
}
// Output to console
console.log(output);
// Convert array to text and output to element
link.innerHTML = JSON.stringify(output);
}
答案 1 :(得分:0)
jFiddle的一个大问题是你不包含jQuery。当尝试通过id获取元素时,您不能仅通过名称引用它。下面是一个修改版本,可以输出你想要的东西(虽然不是很好的格式或任何东西)。
$(function() {
var myData = {"timestamps":[1369008000,1369094400,1369180800,],"clicks":[1,2,3,]};
var output = $('#test');
for (var i = 0; i < myData.timestamps.length; i++) {
output.append([myData.timestamps[i], myData.clicks[i]]);
}
});