- ベストアンサー
複数のidを指定する
こんにちわ。いつもお世話になります 少し、HTMLのことも含まれるのですが、 1つのHTMLドキュメントの中で、複数回、同じidを使用するのは文法違反ですか? たとえば <span id="x"></span> <div id="x"></div> のような感じです やりたいことは、複数のspan(場合によってspanの数が変わる)のstyle.colorに 同じ値を指定したいです。 for()を使ってid名を変えて、繰り返すとかしないとダメですか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
申し訳ありません。 #3の訂正です "x"というクラス名の要素の文字色を赤にする場合以下のようになります for (i = 0; i < document.getElementsByClassName("x").length; i++) { document.getElementsByClassName("x")[i].style.color = "red"; }
その他の回答 (3)
- 665
- ベストアンサー率72% (18/25)
特定のクラス名を持つ要素オブジェクトを返す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)
スタイルシートで span.x { color:#ABCDEF } とかして <span class="x">APart</span> <span class="x">BPart</span> とかclass指定するのが良いと思います。 ブラウザによっては、複数の同じIDの記述を許していますし、動作もしますが、 基本的には、同一ドキュメントの中でIDは一意である必要があります。
お礼
なるほど、JavaScriptでclassを指定することはできますか?
- Bonjin
- ベストアンサー率43% (418/971)
IDというのは識別子であるため、通常は一意でなければなりません。 しかし、実際には同じIDを複数使っても問題なく動いてしまいます。
お礼
やはりカブっちゃだめなんですね。。
お礼
ありがとうございます 解決です^^