0

表示したいすべてのコンテンツと同じ ID を持つ同じセクションが常にある、取得したい Web サイトがあります。私は JavaScript があまり得意ではないので、特定のセクション以外をすべて削除する方法を知りたいと思っています。

最善の方法は、DOM 内のすべての要素を通過するループを実行し、保持したい ID を持つセクション以外のすべてを削除することでしょうか? そのアプローチを行った場合、そのセクション内のすべての要素を削除しないようにするにはどうすればよいですか?

4

3 に答える 3

1

おそらく、これをより効率的に行う別の方法は次のとおりです。

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

1 つのノードを削除すると、そのすべての子が含まれるため、ドキュメント全体のすべての要素をループする必要はありません。2 つの可能性があります。

  • セクションを取得し、現在の親のすべての兄弟を削除し、すべての兄弟を削除しながら まで 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 に答える