1. ホーム
  2. javascript

querySelectorAllを使用して取得した要素を削除するにはどうすればよいですか?

2023-10-29 12:13:13

質問

これはすぐに答えが見つかりそうなものですが、見つけることができません。多分、私は間違った用語を検索しているのでしょうか?私はクロスブラウザのフォールバックを必要としませんが、ライブラリはありません、私はこのプロジェクトですべての最新バージョンをターゲットにしています。

いくつかの要素を取得しています。

element = document.querySelectorAll(".someselector");

これは動作していますが、これらの要素を削除するにはどうすればよいのでしょうか?これらの要素をループして element.parentNode.removeChild(element); をしなければならないのでしょうか、それとも私が見逃している簡単な関数があるのでしょうか?

どのように解決するのですか?

はい、ほぼ正解です。 .querySelectorAll が返すのは 凍結されたNodeList . それを反復して何かをする必要があります。

Array.prototype.forEach.call( element, function( node ) {
    node.parentNode.removeChild( node );
});

結果が1つしか得られなかったとしても、次のようにインデックスを介してアクセスする必要があります。

elements[0].parentNode.removeChild(elements[0]);


もし、あなたが 欲しい を使えば、1 つの要素に対してクエリを実行できます。 .querySelector を使います。そこでは、単に ノード参照 を取得するだけで、インデックスを使ったアクセスは必要ありません。