将数字HTML表格解析为数组的JavaScript表格

问题描述:

我正在将网页上的现有HTML表格解析为数组数组,以便稍后传递给绘图对象。我正在学习JavaScript,目前还不清楚我应该如何迭代HTML标记中的数据值。这是我想出的:将数字HTML表格解析为数组的JavaScript表格

for (i = 0; i < table.rows.length; i += 1) { 
    row = table.rows[i]; 
    for (j = 0; j < row.cells.length; j += 1) { 
     cell = row.cells[j]; 
     coord[j] = Number(cell.innerText); 
    } 
    data[i] = coord.slice(); 
} 

我被.innerText部分困扰。这是遍历<td>标签中文本元素的通用机制吗?

不幸的是.innerText is not universal,最值得注意的是它从Firefox中丢失。如果它只是单元格中的文本,或者使用Number(cell.innerText || cell.textContent)来计算所有浏览器,请在此处使用.innerHTML

+0

+1,它是107k :) – Sarfraz 2010-11-11 08:36:24

是的,你在做什么很好,但innerText没有得到普遍支持。虽然我有一些建议...

var coords = [], 
    data = []; 

for (var i = 0, rowsLength = table.rows.length; i < rowsLength; i++) { 
    var row = table.rows[i]; 
    for (var j = 0, cellsLength = row.cells.length; j < cellsLength; j++) { 
     var cell = row.cells[j]; 
     coord[j] = Number(cell.innerHTML); 
    } 
    data[i] = coord.slice(); 
} 

这假定您的手机只有一个数字(或第一部分是有用的数字)。

  • 使用var否则您的变量是全局的。
  • 缓存长度 - 否则它们每次迭代计算。
  • i++通常用于增加数字。