Attr
この型は、DOM 要素の属性をオブジェクトとして提供します。ほとんどの DOM メソッドは、この属性を文字列として直接取得するでしょう (例: Element.getAttribute()
)。しかし、特定の関数 (例: Element.getAttributeNode()
) やイテレーションを表すものには Attr 型を付与します。
Attr
は Node
から継承されますが、DOM4 仕様では異なります。Attr の実装を仕様に昇華する目的で、これを Node
から継承されないものに変更する作業が進められています。そのため、Attr
オブジェクト上の Node
プロパティやメソッドを使用すべきではありません。Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4) 以降、これが削除されるという警告メッセージがコンソールに出力されています。これに従って、コードを変更してください。非推奨のプロパティとメソッド の完全なリストも参照してください。
プロパティ
name
(en-US) 読取専用- 属性の名前です。
namespaceURI
読取専用- 属性の名前空間 URI を表す
DOMString
文字列です。名前空間がない場合、null
になります。 localname
読取専用- 属性の限定名のローカル部分を表す
DOMString
文字列です。 prefix
読取専用- 属性の名前空間の接頭辞を表す
DOMString
文字列です。接頭辞が指定されていない場合、null
になります。 ownerElement
(en-US) 読取専用-
属性を持った要素です。
注意: DOM レベル 4 からこのプロパティは削除されました。
Element
からAttr
オブジェクトを取得でき、関連した要素を知っているという前提からでした。
Document.evaluate
により返されるAttr
オブジェクトのように前提が真とはならない事例があるので、 DOM Living Standard は、プロパティを再び導入しました。Gecko は、Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4) から非推奨注意を出力します。非推奨注意は、Gecko 49.0 (Firefox 49.0 / Thunderbird 49.0 / SeaMonkey 2.46) で再び削除されました。
specified
(en-US) 読取専用- このプロパティは常に
true
を返します。かつては、ソースコードやスクリプトで明示的に指定された場合にtrue
を返し、ドキュメントの DTD で定義されたデフォルト値である場合にfalse
を返しました。 value
(en-US)- 属性の値です。
注意: DOM レベル 3 は Node
インターフェース上にnamespaceURI
, localName
および prefix
を定義していました。DOM4 で、それらは Attr
に移動しました。
この変更は Chrome 46.0 以降、Firefox 48.0 以降で実装されています。
非推奨のプロパティとメソッド
以下のプロパティは非推奨とされました。利用可能な場所では、適切な代わりのプロパティが提供されます。
attributes
- このプロパティは常に
NULL
を返します。 childNodes
- このプロパティは常に
NULL
を返します。 firstChild
- このプロパティは常に
NULL
を返します。 isId
読取専用- 属性が "ID 属性" かどうかを示します。"ID 属性" は、DOM ドキュメント全体で唯一の値であることが期待されます。HTML DOM の内部で、"id" はこの ID 属性だけですが、XMLドキュメントでは他の属性を定義できます。ある属性が唯一であるかどうかは、DTD または他のスキーマ記述で見分けられます。
lastChild
Gecko 14 で廃止- このプロパティは常に
NULL
を返します。 nextSibling
- このプロパティは常に
NULL
を返します。 nodeName
- 代わりに
Attr.name
(en-US) を使用してください。 nodeType
- このプロパティは常に 2 (
ATTRIBUTE_NODE
) を返します。 nodeValue
- 代わりに
Attr.value
(en-US) を使用してください。 ownerDocument
- これを最初の場所で使用すべきではありません。このプロパティが取り除かれても影響が出ないようにコードを実装してください。
parentNode
- このプロパティは常に
NULL
を返します。 previousSibling
- このプロパティは常に
NULL
を返します。 schemaTypeInfo
読取専用- この属性に関連付けられた型情報です。ドキュメントが読み込まれた後または
Document.normalizeDocument
が呼び出された後、この属性含まれた型情報が正しいことが保証されています。ノードが移動された場合、このプロパティは信頼できなくなるでしょう。 specified
- このプロパティは常に
true
を返します。 textContent
- 代わりに
Attr.value
(en-US) を使用してください。
以下のメソッドは非推奨です:
appendChild()
- 代わりに
Attr.value
(en-US) の値を変更してください。 cloneNode()
- これを最初の場所で使用すべきではありません。このプロパティが取り除かれても影響が出ないようにコードを実装してください。
createAttribute()
- 代わりに
Element.setAttribute()
を使用してください。 createAttributeNS()
- 代わりに
Element.setAttributeNS()
を使用してください。 getAttributeNode()
- 代わりに
Element.getAttribute()
を使用してください。 getAttributeNodeNS()
- 代わりに
Element.getAttributeNS()
を使用してください。 hasAttributes()
Gecko 21.0 で廃止- このメソッドは常に
false
を返します。 hasChildNodes()
- このメソッドは常に
false
を返します。 insertBefore()
- 代わりに
Attr.value
(en-US) の値を変更してください。 isSupported()
- これを最初の場所で使用すべきではありません。このプロパティが取り除かれても影響が出ないようにコードを実装してください。
isEqualNode()
- これを最初の場所で使用すべきではありません。このプロパティが取り除かれても影響が出ないようにコードを実装してください。
normalize()
- これを最初の場所で使用すべきではありません。このプロパティが取り除かれても影響が出ないようにコードを実装してください。
removeAttributeNode()
- 代わりに
Element.removeAttribute()
を使用してください。 removeChild()
- 代わりに
Attr.value
(en-US) の値を変更してください。 replaceChild()
- 代わりに
Attr.value
(en-US) の値を変更してください。 setAttributeNode()
- 代わりに
Element.setAttribute()
を使用してください。 setAttributeNodeNS()
- 代わりに
Element.setAttributeNS()
を使用してください。
仕様
仕様書 | 状況 | コメント |
---|---|---|
DOM Attr の定義 |
現行の標準 | ownerElement プロパティを追加。 |
DOM4 Attr の定義 |
廃止 | Node から namespaceURI 、prefix 、localName をこの API へ移動し、ownerElement 、schemaTypeInfo 、isId を削除。 |
Document Object Model (DOM) Level 3 Core Specification Attr の定義 |
廃止 | 初版 |
ブラウザの実装状況
BCD tables only load in the browser
[1] Chrome 45 現在、このプロパティは Node を継承しません。