按ID抓取表并一次迭代一行

时间:2012-09-14 02:27:03

标签: javascript dom dynamic iteration

我想用

var merch = document.getElementById('merch');

在我的网页上检索一个动态填充的表格。然后我想在桌子上迭代,一次一行,抓住

<td> 

元素并将它们作为字符串存储在数组中。每一行都有自己的数组。

有人能告诉我如何做到这一点的线索吗?我确信有一种简单的方法,我在搜索中找不到。

提前感谢您的考虑。

2 个答案:

答案 0 :(得分:0)

The working demo.

var merch = document.getElementById('merch');

// this will give you a HTMLCollection
var rows = merch.rows;

// this will change the HTMLCollection to an Array
var rows = [].slice.call(merch.rows);   

// if you want the elements in the array be string.
// map the array, get the innerHTML propery.
var rows = [].slice.call(merch.rows).map(function(el) {
    return el.innerHTML;
});

map

答案 1 :(得分:0)

你会想要使用jQuery,它会让它变得更容易。然后你可以做这样的事情。

HTML表格

<table id="iterateOverThisTable">
  <tr>
    <td>One</td>
    <td>Two</td>
    <td>Three</td>
  </tr>
  <tr>
    <td>One</td>
    <td>Two</td>
    <td>Three</td>
  </tr>
  <tr>
    <td>One</td>
    <td>Two</td>
    <td>Three</td>
  </tr>
</table>

JS文件(已包含jQuery)

$(function() {
  var rows = [];

  $("#tableToIterateOver tr").each(function() {
    var = cells = [];

    $(this).find('td').each(function() {
      cells.push($(this).text());
    });

    rows.push(cells);
  });
})