--- title: Attr slug: Web/API/Attr tags: - API - DOM translation_of: Web/API/Attr ---
{{APIRef("DOM")}}

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

{{InheritanceDiagram}}

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

プロパティ

{{domxref("Attr.name", "name")}} {{readOnlyInline}}
属性の名前です。
{{domxref("Attr.namespaceURI", "namespaceURI")}} {{readOnlyInline}}
属性の名前空間 URI を表す {{domxref("DOMString")}} 文字列です。名前空間がない場合、null になります。
{{domxref("Attr.localName", "localname")}} {{readOnlyInline}}
属性の限定名のローカル部分を表す {{domxref("DOMString")}} 文字列です。
{{domxref("Attr.prefix", "prefix")}} {{readOnlyInline}}
属性の名前空間の接頭辞を表す {{domxref("DOMString")}} 文字列です。接頭辞が指定されていない場合、null になります。
{{domxref("Attr.ownerElement", "ownerElement")}} {{readOnlyInline}}

属性を持った要素です。

注意: DOM レベル 4 からこのプロパティは削除されました。 {{domxref("Element")}} から Attr オブジェクトを取得でき、関連した要素を知っているという前提からでした。
{{domxref("Document.evaluate")}} により返される Attr オブジェクトのように前提が真とはならない事例があるので、 DOM Living Standard は、プロパティを再び導入しました。

Gecko は、Gecko 7.0 {{geckoRelease("7.0")}} から非推奨注意を出力します。非推奨注意は、Gecko 49.0 {{geckoRelease("49.0")}} で再び削除されました。

{{domxref("Attr.specified", "specified")}} {{readOnlyInline}}
このプロパティは常に true を返します。かつては、ソースコードやスクリプトで明示的に指定された場合に true を返し、ドキュメントの DTD で定義されたデフォルト値である場合に false を返しました。
{{domxref("Attr.value", "value")}}
属性の値です。

注意: DOM レベル 3 は {{domxref("Node")}} インターフェース上にnamespaceURI, localName および prefix を定義していました。DOM4 で、それらは Attr に移動しました。

この変更は Chrome 46.0 以降、Firefox 48.0 以降で実装されています。

非推奨のプロパティとメソッド

以下のプロパティは非推奨とされました。利用可能な場所では、適切な代わりのプロパティが提供されます。

attributes
このプロパティは常に NULL を返します。
childNodes
このプロパティは常に NULL を返します。
firstChild
このプロパティは常に NULL を返します。
isId {{readOnlyInline}}
属性が "ID 属性" かどうかを示します。"ID 属性" は、DOM ドキュメント全体で唯一の値であることが期待されます。HTML DOM の内部で、"id" はこの ID 属性だけですが、XMLドキュメントでは他の属性を定義できます。ある属性が唯一であるかどうかは、{{Glossary("DTD")}} または他のスキーマ記述で見分けられます。
lastChild {{obsolete_inline(14)}}
このプロパティは常に NULL を返します。
nextSibling
このプロパティは常に NULL を返します。
nodeName
代わりに {{domxref("Attr.name")}} を使用してください。
nodeType
このプロパティは常に 2 (ATTRIBUTE_NODE) を返します。
nodeValue
代わりに {{domxref("Attr.value")}} を使用してください。
ownerDocument
これを最初の場所で使用すべきではありません。このプロパティが取り除かれても影響が出ないようにコードを実装してください。
parentNode
このプロパティは常に NULL を返します。
previousSibling
このプロパティは常に NULL を返します。
schemaTypeInfo {{obsolete_inline}} {{readOnlyInline}}
この属性に関連付けられた型情報です。ドキュメントが読み込まれた後または {{domxref("Document.normalizeDocument")}} が呼び出された後、この属性含まれた型情報が正しいことが保証されています。ノードが移動された場合、このプロパティは信頼できなくなるでしょう。
specified
このプロパティは常に true を返します。
textContent
代わりに {{domxref("Attr.value")}} を使用してください。

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

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

仕様

仕様書 状況 コメント
{{SpecName("DOM WHATWG", "#interface-attr", "Attr")}} {{Spec2("DOM WHATWG")}} ownerElement プロパティを追加。
{{SpecName("DOM4", "#interface-attr", "Attr")}} {{Spec2("DOM4")}} {{domxref("Node")}} から namespaceURIprefixlocalName をこの API へ移動し、ownerElementschemaTypeInfoisId を削除。
{{SpecName("DOM3 Core", "core.html#ID-637646024", "Attr")}} {{Spec2("DOM3 Core")}} 初版

ブラウザの実装状況

{{Compat("api.Attr")}}

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