表示したいすべてのコンテンツと同じ ID を持つ同じセクションが常にある、取得したい Web サイトがあります。私は JavaScript があまり得意ではないので、特定のセクション以外をすべて削除する方法を知りたいと思っています。
最善の方法は、DOM 内のすべての要素を通過するループを実行し、保持したい ID を持つセクション以外のすべてを削除することでしょうか? そのアプローチを行った場合、そのセクション内のすべての要素を削除しないようにするにはどうすればよいですか?
表示したいすべてのコンテンツと同じ ID を持つ同じセクションが常にある、取得したい Web サイトがあります。私は JavaScript があまり得意ではないので、特定のセクション以外をすべて削除する方法を知りたいと思っています。
最善の方法は、DOM 内のすべての要素を通過するループを実行し、保持したい ID を持つセクション以外のすべてを削除することでしょうか? そのアプローチを行った場合、そのセクション内のすべての要素を削除しないようにするにはどうすればよいですか?
おそらく、これをより効率的に行う別の方法は次のとおりです。
document.body.innerHTML = document.getElementById( 'saveContentId' ).innerHTML
1 つのノードを削除すると、そのすべての子が含まれるため、ドキュメント全体のすべての要素をループする必要はありません。2 つの可能性があります。
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"));
必要な要素のみを保存し、他のすべての要素を削除できます。また、Jqueryの使用をお勧めします