1

行がレコードセットから動的にロードされるテーブルがあります。また、Javascript を使用して、チェックボックス (表にはありません) をオンにすると、列 x = y のときにすべての行が非表示になりますが、垂直方向の境界線 (実際には右に配置された背景画像) がフェードします。 CSS を使用したテーブルの最後の行.sortable .dynamicrow:last-child td{

したがって、ボックスをチェックして最後の 1 行を削除すると、境界線が適切にフェードしません。基本的には、CSS を再実行/更新する必要があります。

全体として、JavaScript で要素のスタイル/CSS を更新する方法を尋ねています。

   .sortable .dynamicrow:last-child td{
    background-image:url(../Images/tablevborderbottom.png);
    background-position:right;
    background-repeat:no-repeat;
}

最後の行で垂直境界線をフェードさせるために使用する CSS です。最後の行が削除されることがあるため、最後から 2 番目の行が最後の行になりますが、実線の境界線は維持され、フェードアウトしません。

別の言い方をすると、ページがロードされた後、Javascript が原因で最後の子が削除されることがあるため、その上の子が最後の子になります。上記の CSS を新しい最後の子に適用するにはどうすればよいですか?

4

1 に答える 1

0

私がすることは、既存のスタイルにクラス宣言を追加し、最後の行を非表示にして、CSS クラスを現在の最後の行に適用することです。

   .sortable .dynamicrow:最後の子 td, .dummy_last_row{
    background-image:url(../Images/tablevborderbottom.png);
    背景位置:右;
    バックグラウンドリピート:リピートなし;
}

次に、JavaScript。これは、5 行、onclick="Lst_row(this)" のボタンを持つ 1 つの td を持つ単純なテーブルに基づいています。

関数 Lst_row(行){
    行 = 行.parentNode.parentNode;
    tbl = document.getElementById("ソートテーブル");
    行 = tbl.getElementsByTagName("TR");
    if(row == rows[tbl.getElementsByTagName("TR").length-1] || row.className.indexOf("dummy_last_row") != -1){
        for (i=0; i<rows.length; i++){
            if(i != 0 && 行 == 行 [i] && 行 [i-1])){
                rows[i-1].className += "dummy_last_row";
            }
        }
    }
}

これはもちろん非常に単純ですが、基本はそこにあります。

于 2009-10-17T19:27:32.163 に答える