テーブルの列数取得については、検索するとこの方法がたくさん見つかります。
1 |
var columnNum = $('table')[0].rows[0].cells.length |
これだと、colspanでセルが結合されている行ではタグの数だけ数えてしまうので列数がズレちゃいます。
なので、colspan込みでカウントできるコードを考えてみました。
1 2 3 4 5 6 7 8 |
var colspan = 0; // colspanに列数をカウントする。 $('table').find("tr:first td,tr:first th").each(function () { if ($(this).attr("colspan")) { colspan += parseInt($(this).attr("colspan")); } else { colspan += 1; } }); |
テーブルを動的に生成しててロードするまでレイアウトがわからないテーブルにインデックス行を作ろうとしているときに考えました。