web-dev-qa-db-ja.com

JavaScriptでHTMLテーブルを配列に変換

HTMLテーブルをJavaScript配列に変換するにはどうすればよいですか?

<table id="cartGrid">
  <thead>
       <tr>
          <th>Item Description</th>
          <th>Qty</th>
          <th>Unit Price</th>
          <th>Ext Price</th>
       </tr>
  </thead>
<tbody>
    <tr><td>Old Lamp</td><td>1</td><td>107.00</td><td>107.00</td>
    <tr><td>Blue POst</td><td>2</td><td>7.00</td><td>14.00</td>
</tbody>
</table>
16
jongbanaag

これは、あなたがやりたいことの1つの例です。

var myTableArray = [];

$("table#cartGrid tr").each(function() {
    var arrayOfThisRow = [];
    var tableData = $(this).find('td');
    if (tableData.length > 0) {
        tableData.each(function() { arrayOfThisRow.Push($(this).text()); });
        myTableArray.Push(arrayOfThisRow);
    }
});

alert(myTableArray);

たとえば、THのテキストを使用して、代わりに各TDのキーと値のペアを作成することで、これを拡張できます。

この実装は多次元配列を使用するため、次のようなことを行うことで行とtdにアクセスできます。

myTableArray[1][3] // Fourth td of the second tablerow

編集:ここにあなたの例のフィドルがあります: http://jsfiddle.net/PKB9j/1/

43

この関数はHTMLテーブルをカバーし(IDを指定するだけ)、テーブルの配列を返します。

            function table_to_array(table_id) {
                    myData = document.getElementById(table_id).rows
                    //console.log(myData)
                    my_liste = []
                    for (var i = 0; i < myData.length; i++) {
                            el = myData[i].children
                            my_el = []
                            for (var j = 0; j < el.length; j++) {
                                    my_el.Push(el[j].innerText);
                            }
                            my_liste.Push(my_el)

                    }
                    return my_liste
            }

お役に立てば幸いです。

0
Youcef Ali