如何用javascript删除dom元素?

时间:2013-09-23 23:56:45

标签: javascript dom

我有一个链接,我想使用javascript删除它

这是我到目前为止所拥有的

<a href="">test</a>

var a = document.getElementsByTagName('a');
for (var i = 0; i < a.length; ++i) {
    if (a[i].innerText === 'test') {
        a.remove();
    }
}

这会失败。

1 个答案:

答案 0 :(得分:1)

不要这样做。 document.getElementsByTagName('a')返回实时集合,因此以相反的顺序循环。所以试试

var aColl = document.getElementsByTagName('a');
for (var i = aColl.length-1; i >= 0; i--) { //loop from reverese order, so that removed item doesn't affect 
    var thisNode = aColl[i];
    if (thisNode.innerHTML === 'test') {
        thisNode.parentNode.removeChild(thisNode );
    }
}

<强> Fiddle

如果你这样做for (var i = 0, len = a.length; i < len; i++) {那么你最终只删除其中的一半,因为每次删除都会更新a中的NodeCollection,你最终会丢失更高索引的元素,你的检查将会失败。