我有一个链接,我想使用 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();
}
}
这将失败。
我有一个链接,我想使用 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();
}
}
这将失败。
不要这样做。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 );
}
}
如果你这样做,for (var i = 0, len = a.length; i < len; i++) {
那么你最终只删除了一半,因为每次删除都会更新 a 中的 NodeCollection 并且你最终会丢失更高索引的元素并且你的检查将失败。