删除具有某个类名的tr

时间:2012-12-05 13:21:14

标签: javascript

我必须删除某些在表中有特定类的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>

1 个答案:

答案 0 :(得分: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]);

Demonstration