DOMAttr (JavaScript)

要素の属性を表します。

定義場所

DOM (JavaScript)

メソッド

このクラスは、DOMNode (JavaScript) のメソッドを継承します。 他のメソッドも同様に継承します。

使用法

Attr オブジェクトは Node インターフェースを継承しますが、オブジェクト内で記述されている要素の実際の子ノードではないため、DOM は Attr オブジェクトを文書ツリーとしては認識しません。そのため、Node 属性の parentNode、previousSibling、nextSibling には、Attr オブジェクトに対して null 値が設定されます。DOM は、属性を要素のプロパティとして認識し、関連する要素とは異なる情報を持つものとしては認識しません。そのため、特定の種類の要素すべてに関連するデフォルト属性などの機能を実装する場合、効率的に実装することができます。また、Attr ノードは DocumentFragment の直下の子ノードではありませんが、DocumentFragment 内の Element ノードに関連付けることができます。 そのため、DOM を使用する場合や実装する場合は、Node インターフェースを継承する他のオブジェクトと Attr ノードにはある程度共通する部分がある一方で、実際には大きく異なっているということに注意する必要があります。

属性の有効な値は、次のように判断します。属性に対して明示的に値が設定されている場合は、この値が属性の有効な値になります。値が明示的に設定されていない場合は、値が宣言されているかどうかを確認します。宣言された値にデフォルト値が指定されている場合は、このデフォルト値が属性の有効な値になります。値が宣言されていない場合やデフォルト値が指定されていない場合は、属性が明示的に追加されるまで、階層モデル内の対象要素上に属性の値は設定されません。また、Attr インスタンスの nodeValue 属性を使用して、属性値をストリング形式で取得することができます。

属性値にエンティティ参照を設定することができる XML の場合、Attr ノードの子ノードを Text ノードか EntityReference ノードのいずれかに指定することができます。ただし、これらのノードが使用中であることが条件になります。詳細については、EntityReference の説明を参照してください。また、DOM Core は属性の種類を認識しないため、DTD やスキーマ内で属性をトークン化された属性として宣言している場合でも、すべての属性値が単純なストリング値として処理されます。