0

我有一个我想使用的网站,它始终具有相同的部分和相同的 id 以及我想要显示的所有内容。我对 javascript 不是很了不起,我想知道如何删除除特定部分之外的所有内容。

最好的方法是只做一个遍历 DOM 中所有元素的循环并删除除我想要保留的 id 部分之外的所有内容吗?如果我采用这种方法,如何防止它删除该部分内的所有元素?

4

3 回答 3

1

也许另一种更有效地做到这一点的方法是:

document.body.innerHTML = document.getElementById( 'saveContentId' ).innerHTML
于 2012-09-25T20:48:25.603 回答
1

删除一个节点包括其所有子节点,因此您无需遍历整个文档中的所有元素。我看到两种可能性:

  • 获取该部分,删除当前父级中的所有兄弟,然后沿着 DOM 树向上直到document.body,同时删除所有兄弟。
  • 获取该部分并将其与文档分离。然后清除document.body并重新附加该部分

第一个解决方案对我来说似乎更干净,所以这里有一些示例代码:

function removeEverythingBut(el) {
    while (el != document.body) {
        var par = el.parentNode;
        for (var i=par.childNodes.length-1; i>=0; i--)
             if (par.childNodes[i] != el)
                  par.removeChild(par.childNodes[i]);
        el = par;
    }
}

// usage:
removeEverythingBut(document.getElementById("my-section"));
于 2012-09-25T20:48:58.073 回答
0

您可以只保存您想要的元素并删除所有其他元素。我也推荐使用 Jquery

于 2012-09-25T20:47:34.203 回答