HTML DOM プロパティオブジェクト
HTML DOM ノード
HTML DOM(Document Object Model)では、すべてはノード:
- ドキュメントはドキュメントノードです
- すべてのHTML要素は要素ノードです
- すべてのHTML属性は属性ノードです
- HTML要素内に挿入されたテキストはテキストノードです
- コメントはコメントノードです
Attr オブジェクト
HTML DOM では、Attr オブジェクトは HTML 属性を表します。
HTML属性は常にHTML要素に属します。
NamedNodeMap オブジェクト
HTML DOM では、NamedNodeMap オブジェクト順序のないノードリストを表します。
ノード名を使用して NamedNodeMap 内のノードにアクセスできます。
ブラウザサポート
![]()
![]()
![]()
![]()
![]()
すべての主要ブラウザが Attr オブジェクトと NamedNodeMap オブジェクトをサポートしています。
| プロパティ / メソッド | 説明 |
|---|---|
| attr.isId | 属性が ID 型の場合、isId プロパティは true を返し、それ以外の場合は false を返します。 |
| attr.name | 属性名を返します |
| attr.value | 属性値を設定または返します |
| attr.specified | 属性が指定されていれば true を返し、それ以外の場合は false を返します |
| nodemap.getNamedItem() | ノードリストから指定された属性ノードを返します。 |
| nodemap.item() | ノードリスト内の指定されたインデックスのノードを返します。 |
| nodemap.length | ノードリストのノード数を返します。 |
| nodemap.removeNamedItem() | 指定された属性ノードを削除します |
| nodemap.setNamedItem() | 指定された属性ノードを設定します(名前で) |
DOM 4 警告 !!!
W3C DOM コアでは、Attr(属性)オブジェクトはノードオブジェクトのすべてのプロパティとメソッドを継承します。
DOM 4 では、Attr(属性)オブジェクトはノードオブジェクトから継承しなくなりました。
長期的なコード品質の観点から、属性オブジェクト内ではノードオブジェクトのプロパティとメソッドを使用しないようにしてください:
| プロパティ / メソッド | 回避する理由 |
|---|---|
| attr.appendChild() | 属性には子ノードがありません |
| attr.attributes | 属性には属性がありません |
| attr.baseURI | 代わりに document.baseURI を使用します |
| attr.childNodes | 属性には子ノードがありません |
| attr.cloneNode() | 代わりに attr.value を使用します |
| attr.firstChild | 属性には子ノードがありません |
| attr.hasAttributes() | 属性には属性がありません |
| attr.hasChildNodes | 属性には子ノードがありません |
| attr.insertBefore() | 属性には子ノードがありません |
| attr.isEqualNode() | 意味がありません |
| attr.isSameNode() | 意味がありません |
| attr.isSupported() | 通常は true です |
| attr.lastChild | 属性には子ノードがありません |
| attr.nextSibling | 属性には兄弟ノードがありません |
| attr.nodeName | 代わりにattr.name を使用します |
| attr.nodeType | 通常は 2(ATTRIBUTE-NODE)です |
| attr.nodeValue | 代わりにattr.value を使用します |
| attr.normalize() | 属性には仕様がありません |
| attr.ownerDocument | 通常はあなたのHTMLドキュメントです |
| attr.ownerElement | 属性へのアクセスに使用したHTML要素 |
| attr.parentNode | 属性へのアクセスに使用したHTML要素 |
| attr.previousSibling | 属性には兄弟ノードがありません |
| attr.removeChild | 属性には子ノードがありません |
| attr.replaceChild | 属性には子ノードがありません |
| attr.textContent | 代わりにattr.value を使用します |