• ベストアンサー

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

  • 文字列の表示/非表示

    下記のコードで、ボタンを押すたびに、 sample1 sample2 sample3 の3個の文字列の非表示/表示が切り替わるようにしたいのですが、 alert(elements.length+"個の要素を取得しました"); の実行で、class="sample"のエレメントの個数は正しく取得できているようなのですが、 elements.style.display = elements.style.display == "none" ? "block" : "none"; で非表示/表示が切り替わってくれません。 何か書き方が悪いのでしょうか? ご経験のある方、御教示ください。 <html> <head> <title>document.getElementsByClassName - class名を元にエレメントを取得する</title> </head> <!--class名を元にエレメントを取得するのサンプル--> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> <!-- function execute() { var elements = document.getElementsByClassName("sample"); alert(elements.length+"個の要素を取得しました"); elements.style.display = elements.style.display == "none" ? "block" : "none"; } //--> </script> <body> <div id="sample1" class="sample" style="display:none;">sample1</div> <div id="sample2" class="sample" style="display:none;">sample2</div> <div id="sample3" class="sample" style="display:none;">sample3</div> <button onclick="execute()">サンプル実行</button> </body> </html>

  • セレクタの優先度

    普通はidのほうがclassよりポイント高いと思いますが 下記のような親要素にidで指定。子要素はclassで指定した場合、classが優先されます この時、#hogeが子要素に働いているポイントは何ポイントになるのでしょうか? classは10点なのでそれ以下となると予想では1点になっていると考えています .hoge{ color: blue;} #hoge{ color: red;} <div id="hoge"> <p class="hoge">aa</p> </div>

    • ベストアンサー
    • CSS
  • CSS/float内のセンタリング

    下記の記述でsideconteをsideWrap内にセンタリングしたいのですが、うまくいきません。sideWrap内に記述したテキストはセンタリングされるのですが、sideconteは思った通りに、配置できません。どのように記述すれば、よいでしょうか? <html lang="ja"> <head> <style type="text/css"> #sideWrap { width:220px; float:right ; background-color: #fec000; text-align:center; } .sideconte { width:175px; background-color:red;text-align:center;} </style> </head> <body> <div id="sideWrap">text1 <div class="sideconte"> text2 </div><!-- /sideconte --> </div><!-- /sideWrap --> </body> </html>

    • ベストアンサー
    • HTML
  • 幅いっぱいに表示させたい

    Bootstrapで以下のように作成した時、id="kore"の部分はcontainerの幅分しか背景色が表示されません、両端の余白分。 「h1サンプル」や「<p>いいい」の位置は変えずにid="kore"の背景色だけ幅いっぱいに表示させる方法はありますか?(サンプル、あああ、いいいの文字位置もそのままで)。 色々試したのですが・・・出来ず、困っています。 --- <div class="container-fluid"> <div class="container"> <h1>サンプル</h1> <p style="background-color:red;" id="kore">あああ</p> <p>いいい</p> </div> </div>

    • 締切済み
    • CSS
  • class指定したHTML要素の背景色を変えるには

    HTML文書中で,class指定した要素の背景色を変更するには,どのようにしたら良いのでしょうか。 例: <div id="HOGE"> <p class="hoge"> Hellow! </p> </div> id指定の要素に対しては, document.getElementById('HOGE').style.backgroundColor="red"; として成功しましたが,class="hoge"に対してはどのように指定すれば良いのかわかりません。 よろしくお願いします。

  • JQueryのセレクタ

    jqueryでセレクタの取得をしたいのですがうまくいきません div要素の中のspan要素を取得したいのですがclassで取得すると重いのでid属性で場所を限定してからclass属性で絞り込みたいです こんな感じにしたらだめでした $("#hoge.foo").html('ほげ'); html <div id=hoge> <span class=foo></span> </div>

  • javascriptでのclass属性変更について教えて下さい。

    javascriptでのclass属性変更について教えて下さい。 html上でclass=tripleがあるとして、javascriptでたとえば、color="red"を適応するにはどうすればいいのでしょうか?お解りになるかた、教えてください。 <div class="triple"><p>あ</p></div>

  • JavaScriptによるCSS変更がIE以外のFirefox,Operaなどで動作しない

    id="tab"要素の背景画像positionをJavaScriptで動的に変更したいのですが、以下のソースではFirefox、Operaで動作しません。IEでは動作確認できました。 原因がわからないのでこちらでお聞きすることにしました。 よろしくお願いします。 <!-- HTMLソース --> <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <meta http-equiv="content-script-type" content="text/javascript" /> <link rel="stylesheet"href="test.css"type="text/css" /> <script type="text/javascript" src="test.js"></script> <title>test</title> </head> <body> <div id="javascript_tab_sample"> <ul class="tabstyle"id="tab"> <li><a href="###" onclick="effect1()">title1</a></li> <li><a href="###" onclick="effect2()">title2</a></li> <li><a href="###" onclick="effect3()">title3</a></li> </ul> </div> </body> </html> /*-- CSSソース --*/ ul.tabstyle { list-style:none; } div#javascript_tab_sample ul#tab { background:url('./backimg.png');/*デフォルト背景*/ float:left; width:100%; } div#javascript_tab_sample ul#tab li { height: 41px;/*縦幅*/ padding:0em 0; text-align:center; border-bottom:none; float:left; width:5em; } /*-- JavaScriptソース --*/ function effect1(){ var element1 = document.getElementById('tab'); element1.style.backgroundPositionY='0'; } function effect2(){ var element2 = document.getElementById('tab'); element2.style.backgroundPositionY='82'; } function effect3(){ var element3 = document.getElementById('tab'); element3.style.backgroundPositionY='41'; }

  • CSS classの場合とidの場合の指定方法

    h1などをブロック要素ごとに、違うスタイルを適用させたく、下記のように、記述したのですが、ブロック要素をidで指定する場合は同じように、#mainと#main h1で指定し、<div id="main">とすればよいのでしょうか? それとも、h1は.main h1 とクラス指定して、<div id="main" class="main">とした方がよいのでしょうか?変な質問かもしれませんが、どちらも同じように表示するので、どちらがよいのか分かりません. <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <style type="text/css" media="screen"><!-- .main { width:100px;} .main h1 { color:red;} --></style> </head> <body> <div class="main"> <h1>aaa</h1> </div> </body> </html>

    • ベストアンサー
    • HTML
  • このブログのトップに画像を載せたいです。

    ブログのトップに画像を載せたいです。 つい最近サーバーを借りて、見よう見まねでHPを作りました。 ブログも開設しました。 こちらはテンプレートがあったので使ったのですが、いまいち納得いきません。 このトップに画像を載せたいのですが今度はXML?(初心者なもんで判断できません。)でどこにどう記述すればよいかわかりません。 TOP.pngという画像をトップに入れたいのですが、どう記述すればよいでしょうか? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset={site_encoding}" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <title>{site_title}</title> <link rel="stylesheet" href="{site_css}" type="text/css" /> <link rel="alternate" type="application/rss+xml" title="RSS" href="{site_rss}" /> <link rel="alternate" type="application/atom+xml" href="{site_atom}" /> </head> <body> <a name="top"></a> <div id="layout"> <!-- BEGIN title --> <div id="header"> <h1 class="site_title">{blog_name}</h1> <div class="description">{blog_description}</div> </div> <br class="clear" /> <!-- END title --> <div id="contents"> <div id="left"> <!-- BEGIN calendar --> <div class="linktitle">CALENDAR</div> <div class="calendar"> <table border="0" cellpadding="0" cellspacing="1"> <tr align="center"> <td class="cell" style="color:#CC0000">S</td> <td class="cell" style="color:#000000;">M</td> <td class="cell" style="color:#000000;">T</td> <td class="cell" style="color:#000000;">W</td> <td class="cell" style="color:#000000;">T</td> <td class="cell" style="color:#000000;">F</td> <td class="cell" style="color:#0066CC">S</td> </tr> </table> {calendar} </div> <!-- END calendar -->

    • ベストアンサー
    • HTML

専門家に質問してみよう