aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/attr/index.html
blob: 52582355e8f1c40d53ff71998aa2c235cc5e2a8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
---
title: Attr
slug: Web/API/Attr
tags:
  - API
  - DOM
translation_of: Web/API/Attr
---
<div>{{APIRef("DOM")}}</div>

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

<p>{{InheritanceDiagram}}</p>

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

<h2 id="プロパティ">プロパティ</h2>

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

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

 <p>Gecko は、Gecko 7.0 {{geckoRelease("7.0")}} から非推奨注意を出力します。非推奨注意は、Gecko 49.0 {{geckoRelease("49.0")}} で再び削除されました。</p>
 </div>
 </dd>
 <dt>{{domxref("Attr.specified", "specified")}} {{readOnlyInline}}</dt>
 <dd>このプロパティは常に <code>true</code> を返します。かつては、ソースコードやスクリプトで明示的に指定された場合に <code>true</code> を返し、ドキュメントの <acronym title="Document Type Definition">DTD</acronym> で定義されたデフォルト値である場合に <code>false</code> を返しました。</dd>
 <dt>{{domxref("Attr.value", "value")}}</dt>
 <dd>属性の値です。</dd>
</dl>

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

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

<h2 id="非推奨のプロパティとメソッド">非推奨のプロパティとメソッド</h2>

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

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

<p>以下のメソッドは非推奨です:</p>

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

<h2 id="仕様">仕様</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">仕様書</th>
   <th scope="col">状況</th>
   <th scope="col">コメント</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName("DOM WHATWG", "#interface-attr", "Attr")}}</td>
   <td>{{Spec2("DOM WHATWG")}}</td>
   <td><code>ownerElement</code> プロパティを追加。</td>
  </tr>
  <tr>
   <td>{{SpecName("DOM4", "#interface-attr", "Attr")}}</td>
   <td>{{Spec2("DOM4")}}</td>
   <td>{{domxref("Node")}} から <code>namespaceURI</code><code>prefix</code><code>localName</code> をこの API へ移動し、<code>ownerElement</code><code>schemaTypeInfo</code><code>isId</code> を削除。</td>
  </tr>
  <tr>
   <td>{{SpecName("DOM3 Core", "core.html#ID-637646024", "Attr")}}</td>
   <td>{{Spec2("DOM3 Core")}}</td>
   <td>初版</td>
  </tr>
 </tbody>
</table>

<h2 id="ブラウザの実装状況">ブラウザの実装状況</h2>

<p>{{CompatibilityTable}}</p>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>機能</th>
   <th>Chrome</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari</th>
  </tr>
  <tr>
   <td>基本サポート</td>
   <td>{{CompatVersionUnknown}}<sup>[1]</sup></td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>機能</th>
   <th>Android</th>
   <th>Android Webview</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>IE Mobile</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
   <th>Chrome for Android</th>
  </tr>
  <tr>
   <td>基本サポート</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}} [1]</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}<sup>[1]</sup></td>
  </tr>
 </tbody>
</table>
</div>

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