Element.attributes プロパティは、そのノードに登録された全ての属性ノードのコレクションを返却します。返却される値は NamedNodeMap であり、 Array ではありません。つまり、 Array のメソッドは持っておらず、 Attr ノードのインデックスはブラウザーによって変わる可能性があります。より正確に言うと、 attributes はその属性に関するあらゆる情報を表す文字列のキーと値の組です。

構文

var attr = element.attributes;

基本的な例

// ドキュメント内の最初の <p> 要素を取得する
var para = document.getElementsByTagName("p")[0];
var atts = para.attributes;

要素の属性を列挙する

ある要素の全ての属性を走査したい時には、インデックスを使うと便利です。
次の例では、 "paragraph" を id に持つ要素の全ての属性ノードを走査し、その属性の値を表示します。

<!DOCTYPE html>

<html>

 <head>
  <title>Attributes example</title>
  <script type="text/javascript">
   function listAttributes() {
     var paragraph = document.getElementById("paragraph");
     var result = document.getElementById("result");

     // まず、最初の段落(p1)がなんらかの属性を持っているか確かめよう
     if (paragraph.hasAttributes()) {
       var attrs = paragraph.attributes;
       var output = "";
       for(var i = attrs.length - 1; i >= 0; i--) {
         output += attrs[i].name + "->" + attrs[i].value;
       }
       result.value = output;
     } else {
       result.value = "No attributes to show";
     }
   }
  </script>
 </head>

<body>
 <p id="paragraph" style="color: green;">Sample Paragraph</p>
 <form action="">
  <p>
    <input type="button" value="Show first attribute name and value"
      onclick="listAttributes();">
    <input id="result" type="text" value="">
  </p>
 </form>
</body>
</html>

仕様策定状況

仕様書 策定状況 コメント
DOM
Element.attributes の定義
現行の標準 Document Object Model (DOM) Level 3 Core Specification 以降、 Node から Element へ移動
Document Object Model (DOM) Level 3 Core Specification
Element.attributes の定義
廃止された Document Object Model (DOM) Level 2 Core Specification から変更無し
Document Object Model (DOM) Level 2 Core Specification
Element.attributes の定義
廃止された Document Object Model (DOM) Level 1 Specificationから変更無し
Document Object Model (DOM) Level 1 Specification
Element.attributes の定義
廃止された 初回定義

ブラウザーの対応

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応 ? ? ? ? ? ?
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応 ? ? ? ? ? ? ?

関連情報

  • 返却される値のインターフェースであるNamedNodeMap
  • quirksmodeにおけるクロスブラウザー互換性への配慮

 

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

 このページの貢献者: mfuji09, yanana, DriftwoodJP, fscholz, arunpandianp, ethertank, Ktjpn, Okome
 最終更新者: mfuji09,