我正在尝试编写一个简短的脚本来获取一些数据。我的想法是,而不是编写大量的JavaScript文件,我总是需要对链接中的ID进行硬编码,我认为必须可以在链接中插入变量。现在我有问题我只看到我的var的最后一个值,因为看起来var将被覆盖所有时间,而不是简单地将ID添加到输出。我希望你能帮助我。
以下是代码:
myConnector.getData = function(table, doneCallback) {
var date = new Date();
edate = date.toISOString().slice(0,10) + "-23-59-59";
var ids = ["3775", "6697"]
for ( i = 1; i < ids.length; i++)
var id_temp = ids[i];
{
$.getJSON("https://****/api/historicdata.json?id="+id_temp+"&avg=0&sdate=2016-12-12-00-00-00&edate="+edate+"&username=***&passhash=****", function(resp) {
var feat = resp.histdata,
tableData = [];
// Iterate over the JSON object
//String id = UUID.randomUUID().toString();
for (var j = 0, len = feat.length; j < len; j++) {
tableData.push({
//"no" : j,
"ids" : id_temp,
"datetime": feat[j].datetime,
"value": feat[j].value,
"value_raw": feat[j].value_raw,
"coverage": feat[j].coverage,
"coverage_raw": feat[j].coverage_raw
});
}
table.appendRows(tableData);
});
};
doneCallback();
};
答案 0 :(得分:2)
问题是id_temp
只会设置最后一个值,因为{
位置错误。
此:
var ids = ["3775", "6697"]
for ( i = 1; i < ids.length; i++)
var id_temp = ids[i];
{
应该是:
var ids = ["3775", "6697"]
for ( i = 1; i < ids.length; i++)
{
var id_temp = ids[i];
//... rest of loop ...
答案 1 :(得分:1)
问题是你的整个代码不在for循环中,你的for循环只有一行
使用
var ids = ["3775", "6697"]
for ( i = 1; i < ids.length; i++)
{
var id_temp = ids[i];
$.getJSON("https://****/api/historicdata.json?id="+id_temp+"&avg=0&sdate=2016-12-12-00-00-00&edate="+edate+"&username=***&passhash=****", function(resp) {