Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
NodeList オブジェクトはノードの集合であり、 Node.childNodes などのプロパティや document.querySelectorAll() などのメソッドの返値として用いられます。
メモ: NodeList は Array とは異なりますが、forEach() メソッドで処理を反復適用することは可能です。Array.from() を使うことで Array に変換することができます。
NodeList には 生きた ものと 静的な ものの 2 種類のものがありますが、どちらも NodeList と考えられています。
場合によっては NodeList は 生きた ものになります。DOM が変化すると、自動的に集合が更新されることを意味しています。
例えば、 Node.childNodes は生きています。
一方、 NodeList が 静的 である場合があります。この場合は、DOM 内を変更しても集合の内容に影響を与えません。document.querySelectorAll() メソッドは、静的な NodeList を返します。
NodeList の各要素に反復処理を行う方法を選択したり、リストの長さをキャッシュしたりする場合は、この違いを考えておくといいでしょう。
NodeList に含まれるノードの数です。
指定されたインデックスに対応するリスト内の要素を返します。インデックスが範囲外の場合は null を返します。
nodeList[i] のアクセスの代替手段です(この場合、i が範囲外の時には undefined が返ります)。これは JavaScript 以外の言語による DOM の実装で便利です。
NodeList.entries()イテレーターを返し、これによってコードが集合に含まれているキーと値のペアを走査することができます。 (この場合、キーは 0 から始まる数値で値はノードです。)
NodeList.forEach()指定された関数を NodeList の各要素に対して実行し、その要素を関数の引数として渡します。
NodeList.keys()イテレーターを返し、これによってコードが集合に含まれているキーと値のペアのキーを走査することができます。(この場合、キーは 0 から始まる数値です。)
NodeList.values()イテレーターを返し、これによってコードが集合に含まれているキーと値のペアの値(ノード)を走査することができます。
NodeList の中のアイテムは、for ループで走査することができます。
リストの要素について処理を回すために for...in を使用しないでください。NodeList のプロパティである要素に加えて、 length や item プロパティについても処理が適用されるため、 element オブジェクトのみ処理すべきスクリプトではエラーが生じます。また、for...in で取得されるプロパティの順番は保証されていません。
for...of ループであれば、NodeList オブジェクトを正しく扱うことができます。
最近のブラウザーでは、イテレーターに基づくメソッドとして forEach(), entries(), values(), keys() に対応しています。
| DOM # interface-nodelist |
ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。
より良いインターネットのための青写真。
このコンテンツの一部は、©1998–2026 個人の mozilla.org 協力者です。コンテンツはクリエイティブ・コモンズ・ライセンスのもとで利用できます。