javascript - 在 Javascript 中删除所有具有特定标签名称的 DOM 元素

标签 javascript html dom

如何使用 Javascript 删除具有特定标签名称的所有元素。例如,我执行了以下操作:

var els = document.getElementsByTagName("center");

它返回了所有 center 元素的数组。我怎样才能删除所有这些元素?

来自Remove all child elements of a DOM node in JavaScriptJavaScript 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/

相关文章:

javascript - 在 PDFKit 中旋转文本有什么技巧吗?

javascript - JqG​​rid 对 searchBox 中的元素重新排序?

html - 边框半径在 safari 4.0、5.0 for windows 7 及更高版本中不起作用

jquery - 如何使用 jQuery 根据链接的 href 通过 ID 获取元素?

java - 在java中从XML中获取子节点的值

javascript - Yeoman 生成器添加新文件生成现有项目

javascript - 如何使用 CSS 和 Javascript 或 DOJO 制作自定义单选按钮?

html - 不需要的滚动条右边距

Javascript 登录时钟

javascript - Angular 2 Exception : TypeError: 'caller' , 'callee' 和 'arguments' 属性可能在严格模式函数或参数对象上