Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修复随机填充的HTML表?_Javascript_Html_Jquery - Fatal编程技术网

Javascript 如何修复随机填充的HTML表?

Javascript 如何修复随机填充的HTML表?,javascript,html,jquery,Javascript,Html,Jquery,我正在获取一个位置的lat/lng,该位置基于excel表格输入和输出到HTML表格。我能得到正确的坐标;但是,它们不会输出到右边的列(它们随机填充表,我希望它们位于相应的地址旁边)。我发现当我有警报(newArray[n])时,坐标将正确填充;在地理编码搜索之前。 有什么我可以解决的吗?下面是我的代码片段: var tblBodyObj = document.getElementById(tableID).tBodies[0]; for (var i = 0; i < tblBodyOb

我正在获取一个位置的lat/lng,该位置基于excel表格输入和输出到HTML表格。我能得到正确的坐标;但是,它们不会输出到右边的列(它们随机填充表,我希望它们位于相应的地址旁边)。我发现当我有警报(newArray[n])时,坐标将正确填充;在地理编码搜索之前。 有什么我可以解决的吗?下面是我的代码片段:

var tblBodyObj = document.getElementById(tableID).tBodies[0];
for (var i = 0; i < tblBodyObj.rows.length; i++) {
  for (var k = 1; k < rowLength; k++) {
    var oCells = oTable.rows.item(k).cells;
    var cellLength = oCells.length;
    newArray[n] = '';

    for (var j = 2; j < cellLength; j++) {
      var cellVal = oCells.item(j).innerHTML;
      //tblBodyObj.rows[i].insertCell(-1);
      tblBodyObj.rows[i].insertCell(-1);
      var value = cellVal + ' ';
      newArray[n] = newArray[n] + value;
    }
    //alert(newArray[n]);
    MQ.geocode().search(newArray[n])
      .on('success', function(e) {
        var results = e.result,
          result,
          latlng,
          best;

        result = results.best;
        latlng = result.latlng;

        var x = document.getElementById("grid1").rows[o].cells;
        x[cellLength].innerHTML = latlng.lat;
        var y = document.getElementById("grid1").rows[o].cells;
        y[cellLength + 1].innerHTML = latlng.lng;
        //alert(latlng);
        o++;
        n++;
      });
    i++;
  }
}
}
var tblBodyObj=document.getElementById(tableID.tBodies[0];
对于(var i=0;i
这里有一个异步填充表的技巧。。。但它需要一种不同的方法来插入细胞,就像你正在做的那样

在字符串中预先构建完整的表,每个单元格中都有一个虚拟图像,如下所示

<td>  <img style="display:none;" src="X" onerror="this.outerHTML=FetchSomeValue(this.row,this.col);">  </td>

并将字符串显示到屏幕上。当每个图像加载失败时,它将调用函数FetchSomeValue(Row,Col)并通过替换虚拟图像来正确填充

注:我一直使用这种技术处理图像或iFrame(视情况而定),完美无瑕。
图像和iFrame有一个ONLOAD事件,我们可以利用它。

在代码末尾有一个额外的
}
。您在哪里定义变量
o
?您正在调用一个异步函数
MQ.geocode().search()
。它们不一定按照调用的顺序完成。抱歉,忘记将其包含在代码段中。我把VarO=1;问题是不同回调调用的顺序是随机的,因此不能依赖循环索引。