如何使用 Javascript 删除具有特定标签名称的所有元素。例如,我执行了以下操作:
var els = document.getElementsByTagName("center");
它返回了所有 center
元素的数组。我怎样才能删除所有这些元素?
来自Remove all child elements of a DOM node in JavaScript和 JavaScript DOM remove element我知道我可以遍历 els
,找到每个元素的父元素,然后删除该特定节点。但是javascript是否提供了其他方式。就像我们可以在 jquery 中执行 $('center').remove()
一样,它会删除所有带有 center
标签的元素。与 Javascript 中的类似吗?
最佳答案
提到你仍然循环遍历元素(没有办法避免这种情况),你可以这样做:
Array.prototype.slice.call(document.getElementsByTagName('center')).forEach(
function(item) {
item.remove();
// or item.parentNode.removeChild(item); for older browsers (Edge-)
});
演示:http://jsbin.com/OtOyUVE/1/edit
切片的一些注意事项:
document.getElementsByTagName
不返回数组,它返回一个长度为 live 的列表
属性(property)。这就是为什么需要先将其转换为数组的原因(Array.prototype.slice
对任何具有 length
属性的对象执行此操作)。通过这样做,您可以消除列表存在的问题(当您更改 DOM 时得到更新)并且您还可以使用其他数组函数(如 forEach
),它们具有更实用的循环语法.
关于javascript - 在 Javascript 中删除所有具有特定标签名称的 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20044252/