-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]);
}

在第二次迭代中,您将尝试删除索引 1 处的元素,但索引 0 处仍有一个元素,因此永远不会被删除。

一个解决方案是这样的:

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

示范

于 2012-12-05T13:26:00.543 回答