jQueryを使用している場合(または追加してもかまわない場合)、これにより、これらのどのハックよりも作業が効率的に行われます。
function getMaxColCount($table) {
var maxCol = 0;
$table.find('tr').each(function(i,o) {
var colCount = 0;
$(o).find('td:not(.maxcols),th:not(.maxcols)').each(function(i,oo) {
var cc = Number($(oo).attr('colspan'));
if (cc) {
colCount += cc;
} else {
colCount += 1;
}
});
if(colCount > maxCol) { maxCol = colCount };
});
return maxCol;
}
実装を簡単にするために、「maxCol」などのクラスで調整する必要があるtd / thを装飾します。これで、次のことができます。
$('td.maxcols, th.maxcols').each(function(i,o) {
$t = $($(o).parents('table')[0]); $(o).attr('colspan', getMaxColCount($t));
});
これが機能しない実装を見つけた場合は、答えを非難せず、コメントで説明してください。カバーできる場合は更新します。