3

JavaScript に問題があります。
TabList に格納されているテーブル セルのリストがあります。
最大幅を見つけて、この幅をすべてに設定したい。
サンプルコードはこちらですが、幅の設定がうまくいきません。

var MaxTabWidth = 0;
for (var i = 0; i < TabList.length-1; i++)
{
  if (TabList[i].offsetWidth>MaxTabWidth) 
    MaxTabWidth = TabList[i].offsetWidth;
}

for (var i = 0; i < TabList.length-1; i++)
{
  TabList[i].style.width = MaxTabWidth+"px";
  // TabList[i].width = MaxTabWidth+"px";
  // TabList[i].offsetWidth = MaxTabWidth+"px";
}

私は自分の試みにコメントしました..
助けはありますか?
これ は私にとってはうまくいきませんでした..

更新:
className をチェックしていたので、TabList はセルのリストであると確信しています。
最後のセルでテーブルの残りの幅を埋めたいので、TabList.length-1 までループしています。

4

3 に答える 3

4

ページからすべての css/styling を削除し、テストして問題を特定することをお勧めします。このようなことは、CSS によって複雑になることがよくあります。

于 2009-05-01T09:02:40.683 に答える
1

テーブル全体の幅を --i*MaxTabWidth に設定した場合。それは列を均等に分散しますか?テーブルの名前が myTable であるとします。

document.getElementById('myTable').width = new String(--i*MaxTabWidth)

編集:また、しません

for (var i = 0; i < TabList.length-1; i++)

TabList.length-2 で停止して最後の列をスキップしますか?

于 2009-04-30T15:59:24.060 に答える
0

価値があるのは、jQueryでは、テーブルのIDが「myTable」である次のスクリプトでこれを行うことができることです。フレームワークを追加するために環境を十分に制御できる場合は、このようなタスクがはるかに簡単になるため、フレームワークを強くお勧めします.

    var maxWidth = 0;

    $("#myTable td").each(function() {
        if ($(this).width() > maxWidth) {
            maxWidth = $(this).width();
        }
    });
    $("#myTable td").width(maxWidth);
于 2009-04-30T16:07:37.300 に答える