-1

テーブルに特定のクラスがある特定のtrを削除する必要があります。以下のものを試しましたが、機能しないようです。

var d1 = document.getElementsByClassName("t1");
    for (var i = 0; i < d.length; i++) {
        d1[i].parentElement.removeChild(d1[i]);
    }

誰かが私を正しい方向に導いてくれますか

<html>
    <head>
        <script type="text/javascript">
            function removeTR (){
            }
        </script>
    </head>
    <body onload="javascript:removeTR()">
        <table>
            <tr >
                <td></td>
            </tr>
            <tr class="t1">
            </tr>
            <tr class="t1">
            </tr>
        </table>
    </body>
</html>
4

1 に答える 1

1

いくつかのタイプミスと、別のより根本的な問題があります。 getElementsByTagNameによって返される動的コレクション (ライブ NodeList) で、この方法を反復して同時に削除することはできません。

var d = document.getElementsByClassName("t1");
for (var i = 0; i < d.length; i++) {
    d[i].parentElement.removeChild(d[i]);
}

2 回目の繰り返しでは、インデックス 1 の要素を削除しようとしますが、インデックス 0 の要素はまだ存在するため、削除されることはありません。

解決策はこれです:

var d = document.getElementsByClassName("t1");
while (d.length) d[0].parentElement.removeChild(d[0]);

デモンストレーション

于 2012-12-05T13:26:00.543 に答える