Attr

この型は、DOM 要素の属性をオブジェクトとして提供します。ほとんどの DOM メソッドは、この属性を文字列として直接取得するでしょう (例: Element.getAttribute())。しかし、特定の関数 (例: Element.getAttributeNode()) やイテレーションを表すものには Attr 型を付与します。

警告: DOM Core 1、2、および 3 仕様において、AttrNode から継承されますが、DOM4 仕様では異なります。Attr の実装を仕様に昇華する目的で、これを Node から継承されないものに変更する作業が進められています。そのため、Attr オブジェクト上の Node プロパティやメソッドを使用すべきではありません。
Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4) 以降、これが削除されるという警告メッセージがコンソールに出力されています。これに従って、コードを変更してください。非推奨のプロパティとメソッド の完全なリストも参照してください。

プロパティ

name 読取専用
属性の名前です。
namespaceURI 読取専用
属性の名前空間 URI を表す DOMString 文字列です。名前空間がない場合、null になります。
localname 読取専用
属性の限定名のローカル部分を表す DOMString 文字列です。
prefix 読取専用
属性の名前空間の接頭辞を表す DOMString 文字列です。接頭辞が指定されていない場合、null になります。
specified 読取専用
このプロパティは常に true を返します。かつては、ソースコードやスクリプトで明示的に指定された場合に true を返し、ドキュメントの DTD で定義されたデフォルト値である場合に false を返しました。
value
属性の値です。

注意: 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
このプロパティは常に NULL を返します。
nextSibling
このプロパティは常に NULL を返します。
nodeName
代わりに Attr.name を使用してください。
nodeType
このプロパティは常に 2 (ATTRIBUTE_NODE) を返します。
nodeValue
代わりに Attr.value を使用してください。
ownerDocument
これを最初の場所で使用すべきではありません。このプロパティが取り除かれても影響が出ないようにコードを実装してください。
ownerElement 非推奨 Gecko 7.0 廃止 Gecko 29.0 読取専用
Attr オブジェクトを Element から取得したなら、関連する要素を既に知っているはずです。
上記の主張とは対照的に、属性の所有者を簡単に知り得ない場合は、Document.evaluate が XPath から Attr オブジェクトを返せます。
parentNode
このプロパティは常に NULL を返します。
previousSibling
このプロパティは常に NULL を返します。
schemaTypeInfo 読取専用
この属性に関連付けられた型情報です。ドキュメントが読み込まれた後または Document.normalizeDocument が呼び出された後、この属性含まれた型情報が正しいことが保証されています。ノードが移動された場合、このプロパティは信頼できなくなるでしょう。
specified
このプロパティは常に true を返します。
textContent
代わりに Attr.value を使用してください。

以下のメソッドは非推奨です:

appendChild()
代わりに Attr.value の値を変更してください。
cloneNode()
これを最初の場所で使用すべきではありません。このプロパティが取り除かれても影響が出ないようにコードを実装してください。
createAttribute()
代わりに Element.setAttribute() を使用してください。
createAttributeNS()
代わりに Element.setAttributeNS() を使用してください。
getAttributeNode()
代わりに Element.getAttribute() を使用してください。
getAttributeNodeNS()
代わりに Element.getAttributeNS() を使用してください。
hasAttributes() 廃止 Gecko 21.0
このメソッドは常に false を返します。
hasChildNodes()
このメソッドは常に false を返します。
insertBefore()
代わりに Attr.value の値を変更してください。
isSupported()
これを最初の場所で使用すべきではありません。このプロパティが取り除かれても影響が出ないようにコードを実装してください。
isEqualNode()
これを最初の場所で使用すべきではありません。このプロパティが取り除かれても影響が出ないようにコードを実装してください。
normalize()
これを最初の場所で使用すべきではありません。このプロパティが取り除かれても影響が出ないようにコードを実装してください。
removeAttributeNode()
代わりに Element.removeAttribute() を使用してください。
removeChild()
代わりに Attr.value の値を変更してください。
replaceChild()
代わりに Attr.value の値を変更してください。
setAttributeNode()
代わりに Element.setAttribute() を使用してください。
setAttributeNodeNS()
代わりに Element.setAttributeNS() を使用してください。

仕様

仕様書 状況 コメント
DOM4
Attr の定義
勧告 Node から namespaceURIprefixlocalName をこの API へ移動し、ownerElementschemaTypeInfoisId を削除。
Document Object Model (DOM) Level 3 Core Specification
Attr の定義
勧告 初版

ブラウザの実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート (有)[1] (有) (有) (有) (有)
機能 Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
基本サポート (有) (有) [1] (有) (有) (有) (有) (有)[1]

[1] Chrome 45 現在、このプロパティは Node を継承しません。

ドキュメントのタグと貢献者

タグ: 
 このページの貢献者: Marsf, mikamikuh
 最終更新者: Marsf,