• ベストアンサー

複数のidを指定する

こんにちわ。いつもお世話になります 少し、HTMLのことも含まれるのですが、 1つのHTMLドキュメントの中で、複数回、同じidを使用するのは文法違反ですか? たとえば <span id="x"></span> <div id="x"></div> のような感じです やりたいことは、複数のspan(場合によってspanの数が変わる)のstyle.colorに 同じ値を指定したいです。 for()を使ってid名を変えて、繰り返すとかしないとダメですか?

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

  • ベストアンサー
  • 665
  • ベストアンサー率72% (18/25)
回答No.4

申し訳ありません。 #3の訂正です "x"というクラス名の要素の文字色を赤にする場合以下のようになります for (i = 0; i < document.getElementsByClassName("x").length; i++) { document.getElementsByClassName("x")[i].style.color = "red"; }

noname#12205
質問者

お礼

ありがとうございます 解決です^^

その他の回答 (3)

  • 665
  • ベストアンサー率72% (18/25)
回答No.3

特定のクラス名を持つ要素オブジェクトを返すdocument.getElementsByClassNameのようなものを作成するといいでしょう。 document.getElementsByClassName = function (className) { var i, j, objClass; var objAll = document.getElementsByTagName ? document.getElementsByTagName("*") : document.all; var objCN = new Array(); for (i = 0; i < objAll.length; i++) { objClass = objAll[i].className.split(/\s+/); for (j = 0; j < objClass.length; j++) { if (objClass[j] == className) { objCN.push(objAll[i]); break; } } } return objCN; } これにより、例えば"x"というクラス名の要素の文字色を赤にするならば、 次のようなスクリプトでまとめて色を変えることができます。 for (i = 0; i < document.getElementsByClassName; i++) { document.getElementsByClassName[i].style.color = "red"; }

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

スタイルシートで span.x { color:#ABCDEF } とかして <span class="x">APart</span> <span class="x">BPart</span> とかclass指定するのが良いと思います。 ブラウザによっては、複数の同じIDの記述を許していますし、動作もしますが、 基本的には、同一ドキュメントの中でIDは一意である必要があります。

noname#12205
質問者

お礼

なるほど、JavaScriptでclassを指定することはできますか?

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

IDというのは識別子であるため、通常は一意でなければなりません。 しかし、実際には同じIDを複数使っても問題なく動いてしまいます。

noname#12205
質問者

お礼

やはりカブっちゃだめなんですね。。