document.getElementsByTagName
NodeList オブジェクトが返されました。
いくつかの項目を削除したいです(NodeListから最初の項目を削除したいとします)
それを実行する方法はありますか? (すべてのノードを手動で配列にコピーできることはわかっていますが、NodeList 自体に要素を削除する関数がすでにある場合は、それを行いたくありません)
NodeList から項目を削除しても表示には影響がないことは承知しています (ブラウザーの表示の更新などが発生することはありません。NodeList オブジェクトがそのノードへの参照を保持することを望まないだけです)。
それを実行する方法はありますか? (または、NodeList 内のすべての項目を配列にコピーする必要がありますか?)
ベストアンサー1
ご覧の通り、仕様リストから要素を削除する方法はありません。
いずれにしても意味をなさない。これNodeList
はライブつまり、特定のプロパティ(例:)にアクセスするたびにDOMが再度検索されますlength
。MDCC:
(...) 返されるリストはライブです。つまり、DOM ツリーで自動的に更新されます。 (...)
だからあなたはしなければならないノードを配列にコピーします。
ただし、メソッドを使用すると、これを非常に簡単に行うことができますArray
。たとえば、コピーして最初の要素を直接削除するには、次のようにします。
var nodes = [].slice.call(elements, 1);
はNodeList
配列のようなオブジェクトです。したがって、配列関数を次のように適用することができます。call
[ドキュメント]. は[].slice
、参照を取得するための単なる省略形です。slice
[ドキュメント]方法。