JavaScriptでchildrenとchildNodesの違いと使用方法について


  1. children: childrenはElementオブジェクトのプロパティであり、その要素の直接の子要素(Elementノードのみ)にアクセスします。テキストノードやコメントノードなどは除外されます。childrenプロパティはHTMLCollectionオブジェクトを返します。

例:

const parent = document.getElementById('parent');
const childElements = parent.children;
for (let i = 0; i < childElements.length; i++) {
  console.log(childElements[i]);
}
  1. childNodes: childNodesはNodeオブジェクトのプロパティであり、その要素の直接の子要素にアクセスします。子要素にはElementノードだけでなく、テキストノードやコメントノードなども含まれます。childNodesプロパティはNodeListオブジェクトを返します。

例:

const parent = document.getElementById('parent');
const childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
  console.log(childNodes[i]);
}

注意点:

  • childrenとchildNodesは異なるオブジェクトを返すため、プロパティやメソッドの使い方に注意してください。
  • childrenやchildNodesの取得結果はライブコレクションであり、要素の変更に追従します。そのため、ループ内で要素を追加または削除する場合は注意が必要です。

このように、JavaScriptにおけるchildrenとchildNodesの違いと使用方法を説明しました。これを参考にして、DOM操作において適切なプロパティを選択し、コードをシンプルかつ効果的に記述することができます。