- 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]);
}
- 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操作において適切なプロパティを選択し、コードをシンプルかつ効果的に記述することができます。