javascript - 我如何解析文档并删除除匹配和 ID 及其子项之外的所有元素

标签 javascript html dom

我有一个嵌套了很多 div 的网页。我如何去除除具有特定 ID 及其子元素的 1 之外的所有元素。

我想保留那个 div 及其子元素,并删除其他所有内容,甚至是它的父元素

下面的代码不起作用它也删除了 child

var elms = document.getElementsByTagName('*');
for (var i = 0; i < elms.length; i++) {
    if (elms[i].id != "div63") {
        elms[i].parentNode.removeChild(elms[i])
    }
};

我想要一个非 jQuery 解决方案。

最佳答案

您可以保存对节点的引用,删除所有节点,然后将节点放入主体中:

var saved = document.getElementById('div63');
var elms = document.body.childNodes;
while (elms.length) document.body.removeChild(elms[0]);
document.body.appendChild(saved);

Demonstration

关于javascript - 我如何解析文档并删除除匹配和 ID 及其子项之外的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15303021/

相关文章:

javascript - 始终保留两位小数的 React Native 数字输入掩码

html - 网络邮件客户端截断内联样式

html - Bootstrap 对齐标签

php - 如果使用 PHP 不存在标题标签,则添加 nofollow 属性以链接

javascript - div 在使用 jquery .hover() 时闪烁

javascript - 是否可以在方形空间上使用 MathJax?

javascript - 如何在 React Native 列表中的某些位置为元素设置不同的样式?

html - 多个选项卡上的 Webkit 通知

javascript - 为什么 DOM 元素仅在事件监听器完成后才更新? (纯js)

javascript - 在 DOM 对象上设置属性时如何避免无参数重新分配