解決済みのQ&A
document.getElementById("○○")で・・・
doctorwho_torchwood_tardis_mayoさん
document.getElementById("○○")で・・・
document.getElementById("○○")で特定のidの要素にはアクセスできますが、
複数の要素を指定したいのです。
つまりidではなくclassなどでやるにはどうしたらよいのでしょうか?
getElementByClass("○○")っぽいのですが。
nameでやるのでしょうか?
よろしくお願いします。
- 補足
- 回答ありがとうございます。
では以下のスクリプトに組み込む場合はどうすればよいのでしょうか?
あまり複雑なものはやったことが無いので、少しわかりません。
2重質問のようになり、大変申し訳ないのですが、
どうかよろしくお願いします。
function abc(){
var aaaObj=document.getElementById("aaa");
var bbbObj=document.getElementByClassName("bbb");//IdをClassNameに変更しました。
bbb.innerHTML=aaaObj.value;
}
-
- 質問日時:
- 2008/10/19 11:19:31
-
- 解決日時:
- 2008/10/20 22:38:00
-
- 回答数:
- 2
-
- お礼:
- 知恵コイン
- 25枚
-
- 閲覧数:
- 12,125
-
- ソーシャルブックマークへ投稿:
- Yahoo!ブックマークへ投稿
- はてなブックマークへ投稿
- (ソーシャルブックマークとは)
ベストアンサーに選ばれた回答
mue_xさん
getElementsByClassName()
ただしネイティブ実装は各ブラウザの最新版(IE除く)に限られるから、使うならprototype.jsでも入れる。だが結構重い。
・補足
ClassNameの場合はElementじゃなくてElements。複数形。IDはページ内に1つしか存在しないが、classは複数存在し得る。だから、getElementsByClassName()をしたとき基本的には複数のオブジェクトが取得される。変数なら配列になる。
bbbというクラス名が1つしかないならいい(それなら最初からID使えとなるけどな)が、複数あるならどの(何番目の)bbbクラスのオブジェクトのinnerHTMLを使うのか特定せんといかんべ。
<div class="bbb">hoge</div>
<div class="bbb">foo</div>
<div class="bbb">bar</div>
ってこともありえるでしょ?このとき、
document.getElementsByClassName('bbb')[0].innerHTML; //hoge
document.getElementsByClassName('bbb')[1].innerHTML; //foo
document.getElementsByClassName('bbb')[2].innerHTML; //bar
となる。
- 編集日時:2008/10/20 02:05:55
- 回答日時:2008/10/19 12:24:30
このQ&Aは1ナイス!されています!
役に立ったと思った回答に、ナイス!してみよう!
ベストアンサー以外の回答
(1件中1〜1件)
http://developer.mozilla.org/Ja/DOM:document.getElementsByClassName
当方の環境(IE6/FF2)ではgetElementByClassName()は使えなかったです。
FF3以降で使えるみたいですけど。
http://hiropo.co.uk/archives/29
ここの方みたいにdocument.getElementByTagName()で全体を拾って
class属性値を評価して、欲しいelementだけをObjectに固めて返すような関数を自力で実装した方が無難に思えます。
いかがでしょうか。
- 回答日時:2008/10/19 12:23:46
質問した人からのコメント
でもまだ分からないので、研究していきます。