• ベストアンサー

IE5.5 element.attributes

IE5.5 で、要素の属性のリストを取得する方法を教えて下さい。 element.attributes を試してみましたが、全然違うものが返ってきて、どうしようかと悩んでいます。 <div id="sample" style="color:red;" class="" lang="ja"></div> こういう要素があったら、例えば、 { id:'sample', style:'color:red;', class:'', lang:'ja' } というような一覧を作れるようなリストが欲しいということです。

質問者が選んだベストアンサー

  • ベストアンサー
  • q-ue
  • ベストアンサー率75% (12/16)
回答No.3

IEでは、独自に設定した属性が、その要素のプロパティに追加されるので <div abc="5"> のabc属性は thatDiv.abc のように取得できます。 そこで、document.createElement('div')とthatDivのプロパティを比較して、thatDivのみにあるプロパティを抜き出せば、独自属性を取得できると思います。

gorusura
質問者

お礼

なるほど! そのような方法があるとは、考え付きませんでした。 頭が硬くなっていたようです。 それでやってみます。 ありがとうございました。

その他の回答 (2)

  • q-ue
  • ベストアンサー率75% (12/16)
回答No.2

specified プロパティは使えませんか? specified property (Internet Explorer) http://msdn.microsoft.com/en-us/library/ie/ms534637(v=vs.85).aspx

gorusura
質問者

補足

そのプロパティを使ってみたところ、実際に値が設定されている属性値を取り出すことは成功しました。 しかし、勝手に作った属性名 (例えば abc) が、attributes の プロパティに列挙されません。(<div abc="5">など) 属性名のリストだけでも、取得することはできないのでしょうか。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

IE5.5がないので、試せませんが・・・ for ~ in で順次抜き出すと言う方法ではダメでしたか? 

gorusura
質問者

補足

例えば、 <pre id='output' style="background-color:pink;"></pre> という要素に対して、.attributes を for ~ in で抜き出してみると、全然関係ない内容のものが出てきてしまうんです。 プロパティは、以下の通りです。 accessKey, class, clear, contentEditable, dataFld, dataFormatAs, dataSrc, dir, disabled, hideFocus, id, implementation, lang, language, length:76, onactivate, onafterupdate, onbeforecopy, onbeforecut, onbeforedeactivate, onbeforeeditfocus, onbeforepaste, onbeforeupdate, onblur, oncellchange, onclick, oncontextmenu, oncontrolselect, oncopy, oncut, ondataavailable, ondatasetchanged, ondatasetcomplete, ondblclick, ondeactivate, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, onerrorupdate, onfilterchange, onfocus, onhelp, onkeydown, onkeypress, onkeyup, onlayoutcomplete, onlosecapture, onmousedown, onmouseenter, onmouseleave, onmousemove, onmouseout, onmouseover, onmouseup, onmove, onmoveend, onmovestart, onpage, onpaste, onpropertychange, onreadystatechange, onresize, onresizeend, onresizestart, onrowenter, onrowexit, onrowsdelete, onrowsinserted, onscroll, onselectstart, style, tabIndex, title すべて、ノードの様です。 id と style だけ詳しく書きますと、 id: { nodeName: 'id', nodeValue: 'output', specified: true }, style: { nodeName: 'style', nodeValue: null, specified: true } という風になっています。

関連するQ&A

専門家に質問してみよう