【问题标题】:JavaScript to parse HTML table of numbers into an arrayJavaScript 将 HTML 数字表解析为数组
【发布时间】:2011-05-08 05:59:05
【问题描述】:

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

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 部分感到困扰。这是在&lt;td&gt; 标签中迭代文本元素的通用机制吗?

【问题讨论】:

    标签: javascript html-parsing html-table


    【解决方案1】:

    是的,您所做的很好,尽管 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++ 通常用于增加数字。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-09
        • 1970-01-01
        • 2013-07-14
        • 1970-01-01
        • 2011-07-02
        相关资源
        最近更新 更多