JS。表只获得第一个索引值

时间:2017-06-01 18:37:22

标签: javascript



var columns = ['orange']
//compassvalues=compassvalues.split("~"):this is how I am getting values in array
 compassvalues=["test", "testing","ok", "or"]
var table = document.getElementById('dbtable');

for (var i = 0; i < (compassvalues.length); i++)
{
    var row = table.insertRow(-1); 
    for( var j = 0; j < columns.length; j++ ){
        var cell = row.insertCell(-1); 
        cell.className = columns[j]; //
        cell.innerHTML = compassvalues[i];
    }
}
&#13;
<table id="dbtable" border="1">
<tr>
<th>Event</th>
<th>name</th>
</tr>
</table>
&#13;
&#13;
&#13;

伙计们,我如何将数组值分配给不同的列。我从db获取数组值。目前,所有值仅显示在一列中。

2 个答案:

答案 0 :(得分:0)

编辑:更新你的for循环,以便 compassvalues [i] =将在事件下的值,而compassvalues [i + 1]将是名称下的值。

&#13;
&#13;
var columns = ['orange']
//compassvalues=compassvalues.split("~"):this is how I am getting values in array
compassvalues = ["test", "testing", "ok", "or"];

var table = document.getElementById('dbtable');

//loop through the array every 2 positions
for (var i = 0; i < (compassvalues.length); i = i + 2) {
  var row = table.insertRow(-1);

  var cell1 = row.insertCell(-1);
  var cell2 = row.insertCell(-1);

  cell1.innerHTML = compassvalues[i];
  
  //add the 2nd column, or an empty string if we have
  //an odd number in the array
  cell2.innerHTML = compassvalues[i + 1] || '';
}
&#13;
<table id="dbtable" border="1">
  <tr>
    <th>Event</th>
    <th>name</th>
  </tr>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您正在内部循环中访问compassvalues作为多维数组,即使它不是一个实例:

compassvalues=["test", "testing","ok", "or"] //4 elements, one dimension

cell.innerHTML = compassvalues[i][j];

在循环中,这会拉出compassvalues数组中每个字符串元素的第一个字符。就目前而言,你基本上迭代每个字符串中的字符并为每个字符创建一个新单元格,而不是为每个单词创建一个单元格。如果您向columns数组添加更多元素,则可以观察到这一点。

将其替换为

cell.innerHTML = compassvalues[i]

获取元素本身。