2012-03-06 9 views
13

HTMLテーブルをjavascriptのArrayに変換することは可能ですか?私はこのテーブルを持っています。私はまだ何も試していない。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> 
+0

はい:ここではあなたの例のためのフィドルです。さて、私たちにいくつかのコード、あなたが試したもの、またはテーブルの外観を見せてください。 – f0x

+0

何の配列ですか?テーブルを構成する要素、セル内の値? – kinakuta

+0

はい、コードを書くことで:)(これは行と列をループします) – linuxeasy

答えて

32

ここでは、必要なことを行う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/

+1

セレクタを「テーブルtr」よりも具体的にしたいと思うでしょう。特にレイアウト用のテーブルを使用している場合は、すべてのtr(おそらく他のネストしたテーブル)はテーブルの中にあります。更新されたHTMLが与えられると、セレクタは '$( 'cartGrid')'になります。 – GregL

+0

当然。それは単なる例です。私はそれを明確にするために更新します。 –

+0

ええ、私はそれを知っています。しかし、OPはJSやjQueryにはあまり自信がありませんでしたが、コードのコピーを貼り付けただけで、入れ子になったテーブルを使用していると予期せぬ結果が得られた場合に備えて、レイアウト。 – GregL

関連する問題