Javascript関連情報

更新日:2004年06月20日

DOM Samples /Core Node/attributes

対象がエレメントノードの場合に、そのエレメントが含む属性のリスト。これを利用して、タグ内の各属性にアクセスできます。


JavaScript Samples
Dom編
 

 
attributes
説明 :
対象がエレメントノードの場合に、そのエレメントが含む属性のリスト。

つまり、たとえばoj.attributesなどと書いた時のojは<IMG>や<DIV>などのエレメントオブジェクトのことで、 imgタグならidやsrcやwidthやheightなどの属性のリストを返すということ。これを利用して、タグ内の各属性にアクセスできる。
インターフェイス :
/Core/Node
read/write :
readonly
Syntax :
oj.attributes
値 :
NamedNodeMapのリスト。無ければnull。
備考 :
DOMの仕様は同じ機能を実現するために複数のアプ ローチを用意しており、また、ブラウザ依存 の言い回しも世間では結構流通しています。そこで、 ためしに、
<div id="a">test</div>
というタグの'id属性'にアクセスし、そのid名を取得す るという方法と動作するブラウザをすべてではありませんがいくつか列挙してみましょう。 (太字は下記すべてのブラウザで動作する書き方です)

#NamedNodeMapの説明をしながらこう書くのもなんですが、クロスOSやクロスブラウザの観点から見ると今のところ(2004.6現在)下記の記述方法の中では1番や2番の書き方が安全なのではないかと思います。
  1.document.getElementById("a").id  
  2.document.getElementById("a").getAttribute("id") 
  3.document.getElementById("a").attributes.id.value  
  4.document.getElementById("a").attributes.id.nodeValue 
  5.document.getElementById("a").attributes.item("id").value 
  6.document.getElementById("a").attributes.getNamedItem("id").value 
  7.document.getElementById("a").attributes.getNamedItem("id").nodeValue 
  8.document.getElementsByTagName("div").item(0).id 
  9.document.getElementsByTagName("div").item(0).getAttribute("id") 
 10.document.all("a").getAttribute("id") 
                         
    win   mac   linux
    n7 m1 e5 e6 o7 n7 m1 e5 s1 n7 m1 k3
  1
  2
  3 × × ×
  4 × × ×
  5 × × ×
  6
  7
  8
  9
  10 × × × × × × ×
凡例

 Win 
 n7 -- NetscapeNavogator 7.x 
 m1 -- Mozilla1.x 
 e5 -- Internet Explorer 5.x 
 e6 -- Internet Explorer 6.x 
 o7 -- Opera 7.0

 Mac 
 n7 -- NetscapeNavogator 7.x 
 m1 -- Mozilla1.x 
 e5 -- Internet Explorer 5.0 または 5.1
 s1 -- Safari

 Linux 
 n7 -- NetscapeNavogator 7.x 
 m1 -- Mozilla1.x 
 k3 -- Konqueror 3.x

サンプル : 1
動作ブラウザ
win mac linux
n7 m1 e5 e6 o7 n7 m1 e5 s1 n7 m1 k3

下記文字をクリックすると<p>要素内のid名をダイアログ表示します

この文字をクリックするとid名を表示します

<p id="abc" 
   onclick="alert(this.attributes.getNamedItem('id').nodeValue)"
>この文字をクリックするとid名を表示します</p>

この場合id名は「abc」なのでそれが表示されます。getNamedItem('属性名')というメソッドは/Core/NamedNodeMap で仕様化されていて'属性名'によって指定された属性ノードを返します。
参照:DOM3 /Core/NamedNodeMap/getNamedItem

サンプル : 2
動作ブラウザ
win mac linux
n7 m1 e5 e6 o7 n7 m1 e5 s1 n7 m1 k3
× ×

マウスカーソルを下記画像の上にあててしばらく待つと「これはコーヒーカップです」という説明のtitleチップが現れます。 このtitleをボタンクリックで削除したり書き換えたりします。


<script type="text/javascript">
<!--

function removeTitle(idName)
{
  //1 id名がidNameのエレメントを変数img2へ入れる
  img2 = document.getElementById(idName)

  //2 width属性をimg2のマップから取り除く
  img2.attributes.removeNamedItem("title")
}

function setTitle(idName,titleText)
{
  //1 id名がidNameのエレメントを変数img2へ入れる
  img2 = document.getElementById(idName)

  //2 titleと言う名前の属性を生成し変数attriへ入れる
  attri = document.createAttribute("title")

  //3 title属性をimg2のマップにセットする
  img2.attributes.setNamedItem(attri)

  //4 セットされたtitle属性に値を書き込む
  img2.setAttribute("title",titleText)
}

//-->
</script>
<br>
<img   id      = "sample2"
       title   = "これはコーヒーカップです"
       src     = "//img.allabout.co.jp/gm/article/24075/cup.jpg">
<form>
<input type    = "button"  
       value   = "画像のtitleを除去"
       onclick = "removeTitle('sample2')"><br>
<input type    = "button"  
       value   = "titleをセット「ティーカップでもあるよ」"
       onclick = "setTitle('sample2','ティーカップでもあるよ')"><br>
<input type    = "button"  
       value   = "titleをセット「これは実は子供のおもちゃだったりもします」"
       onclick = "setTitle('sample2','これは実は子供のおもちゃだったりもします')">
</form>




  • 印刷する
  • ブックマークする
  • 携帯に送る
  • ブログに書く

あわせて読みたい

この記事の担当ガイド

写真

高橋 登史朗

Javascriptをはじめ、Ajax、jQueryの著書多数のガイドが、何かと最近騒がれているJa…

続きを読む

住まいには、人の個性がよく現れるもの。同じ空間をどのように使うかで、雰囲気も、快適さも大きく変わってくる。ここでは、「建築家と家を建てる」ガイド の川畑博哉氏が厳選した10軒を紹介し、建築家それぞれのこだわりのポイントを紹介しよう。建築のプロたちが考え出した、マネしたくなるアイデアが満載! さぁ、いますぐチェック!

人気Javascriptランキング

Powered by 価格.com

デジタル関連コミュニティ

北欧好きが、愛用の北欧モノを見せ合うコミュニティ

メルマガ登録

【デジタルメルマガ】オトナのオトコなら知っておきたい、PCやデジモノに関する情報をお届けします。

ショッピングカタログ

All About ウェブマガジン

女性向け

雨が楽しくなる!レイングッズ15

男性向け

マネしたくなるアイデア住宅

All About モバイル

QRコード

All Aboutがケータイで読める!

オススメ記事をメールでチェック

知識・経験を生かして、記事を書いてみませんか?