jQuery 表組みテーブルで要素を選択する

すごいトリッキー。自分でも良くわからないがとりあえずメモ。
下記のようなテーブルがある場合にすべてのセルをひとつづつ処理するJS処理。jQuaryで各要素を選択するfor文とセレクターの使い方がポイント。

<table>
<tr class="record">
<td class="data"></td>
<td class="data"></td>
<td class="data"></td>
<td class="data"></td>
<tr>
<tr class="record">
<td class="data"></td>
<td class="data"></td>
<td class="data"></td>
<td class="data"></td>
<tr>

〜繰り返し〜
</table>

$(".record").size()を使ってtrの数を取得してforですべてのレコードにひとつづつ処理をする。


さらに、$(".record:eq(" + i +") .data").size()で:eq(" + i +")でレコードを指定しつつ、ひとつのレコードに何個のセル(.data)があるかを.size()で取得。forでさらにセルひとつづつ処理。


$(".record:eq(" + i +") .data:eq(" + j +")").after("〜".text());
で個別のセルにいっこづつ処理を入れる。

$("btn").click(function () {
	for (i = 0; i < $(".record").size(); i = i +1){
		for (j = 0; j < $(".record:eq(" + i +") .data").size(); j = j +1){
			$(".record:eq(" + i +") .data:eq(" + j +")").after("<br />" + $(".record:eq(" + i +") .data:eq(" + j +")").text());
		}
	}
});