我有一个链接,我想使用JavaScript如何用javascript去除dom元素?
删除它这里是我迄今为止
<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如何用javascript去除dom元素?
删除它这里是我迄今为止
<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++) {
那么你最终只去掉了一半,因为每次取出将更新一个的NodeCollection,你最终会在更高的丢失元素索引和你的支票将失败。
很棒。成功。谢谢 – Patrioticcow
@Patrioticcow请参阅关于为什么你不应该采取其他方式的解释。 – PSL
+1非jQuery - 很高兴看到有人仍然学习原理 – vol7ron