要素とノードの違いとは?
JavaScriptのDOM(Document Object Model)において、ノードと要素という概念は非常に重要です。これらは、HTMLドキュメントの構造を理解し、操作するための基本的な単位です。ノードとは、HTMLドキュメントを構成するあらゆる部分を指し、要素はその中でも特にHTMLタグを表します。すべての要素はノードですが、すべてのノードが要素ではありません。
ノードの種類
DOMにはいくつかの種類のノードがあります。各ノードは、特定の役割を持ち、HTMLドキュメントのさまざまな部分を表しています。
ノードの種類 | 説明 |
---|---|
要素ノード | HTMLのタグ(例: <div> 、<p> など)を表す |
テキストノード | 要素内のテキスト(例: 「こんにちは」など)を表す |
属性ノード | HTMLタグの属性(例: id="header" )を表す |
コメントノード | HTMLコメント(例: <!-- コメント --> )を表す |
ドキュメントノード | HTMLドキュメント全体を表すノード |
要素ノードとテキストノードの関係
要素ノードの中には、テキストノードが含まれることがよくあります。例えば、次のHTMLコードでは、<h1>
要素ノードの中に「こんにちは」というテキストノードが存在します。
<h1>こんにちは、世界!</h1>
このHTMLコードは次のような構造のDOMツリーを持ちます。
- <h1> – 要素ノード
- こんにちは、世界! – テキストノード
要素ノードの操作
JavaScriptを使って、要素ノードを取得したり、操作したりすることができます。以下は、DOMの要素ノードを取得し、それを操作する基本的な方法です。
例: 要素ノードを取得して操作する
const heading = document.querySelector("h1");
heading.textContent = "新しい見出し";
このコードでは、<h1>
要素ノードを取得し、そのテキストコンテンツを「新しい見出し」に変更しています。
ノードのプロパティとメソッド
JavaScriptのノードオブジェクトには、さまざまなプロパティやメソッドがあり、それらを使ってノードを操作したり、情報を取得することができます。以下は、ノードの主なプロパティとメソッドの一覧です。
プロパティ/メソッド | 説明 |
---|---|
nodeName |
ノードの名前を返す(例: DIV ) |
nodeType |
ノードの種類を数値で返す(1は要素ノード、3はテキストノード) |
textContent |
ノードのテキスト内容を取得または変更する |
parentNode |
ノードの親要素を取得する |
childNodes |
ノードのすべての子ノードを返す |
appendChild |
ノードに子ノードを追加する |
removeChild |
ノードから子ノードを削除する |
例: ノードの子要素を操作する
const parentElement = document.querySelector("ul");
const newItem = document.createElement("li");
newItem.textContent = "新しいアイテム";
parentElement.appendChild(newItem);
このコードでは、<ul>
要素に新しい<li>
要素を追加しています。
要素とノードの相互関係
要素とノードはDOMツリーにおいて密接に関連しています。要素はノードの一種であり、HTMLタグを表す役割を担いますが、テキストやコメントもノードとして扱われます。これにより、DOMは非常に柔軟で、文書内のあらゆる部分にアクセスして操作できるようになっています。
まとめ
JavaScriptのDOM操作において、ノードと要素は基本的な概念です。ノードはHTMLドキュメント全体の構造を表し、要素ノードはその中でも特にHTMLタグを表します。ノードにはさまざまな種類があり、それぞれに対応するプロパティやメソッドを使用して操作することが可能です。ノードと要素の関係を理解することで、JavaScriptを使って効率的にDOMを操作できるようになります。