人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

document.getElementById(id)の質問です。

<div id="hoge1">
<div id="list"></div>
</div>
<div id="hoge2">
<div id="list"></div>
</div>

id=hoge2の中のid=listの内容を取得したい場合はどうかけばいいのでしょうか?

document.getElementById(hoge2.list)
document.getElementById(hoge2 list)
document.getElementById(#hoge2 #list)
document.getElementById(hoge2[list])

●質問者: dosukoi1988
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 7/7件

▽最新の回答へ

1 ● b-wind
●23ポイント

http://www.asahi-net.or.jp/~dp8t-asm/java/articles/XMLJava2/arti...

document.getElementById("list");

2 ● kilrey
●23ポイント

http://www.asahi-net.or.jp/~SD5A-UCD/rec-html401j/struct/global....

id = name [CS]

この属性は、要素に名前を割り当てる。この名前は文書中で一意でなければならない。

というようにHTMLの仕様では一つの文書中で同じidを2回使わないことになっています。なので文書の方を変えた方が良いと思います。例えば

<div id="hoge1">
<div id="hoge1_list"></div>
</div>
<div id="hoge2">
<div id="hoge2_list"></div>
</div>

などです。この場合は

document.getElementById("hoge1_list")

として参照して下さい。


3 ● openseed
●22ポイント

ID って、重複許されなかったような・・・。

http://www.asahi-net.or.jp/~SD5A-UCD/rec-html401j/struct/global....

なので、 id="list" が複数あるのは規約違反です...




<div id="hoge1">

<div id="hoge1_list" class="list"></div>

</div>

<div id="hoge2">

<div id="hoge2_list" class="list"></div>

</div>

として、

document.getElementById("hoge2_list");

というように取得するのが良いと思います。

DOMの仕様とCSSの指定方法には互換性はないです。




あとは、・・・

<script>

function getElementChildById(parentId, childId){

  var elem = document.getElementById(parentId);

    for(var child = elem.firstChild;child != null;child = child.nextSibling){

        if(child.id == childId){

            return child;

        }

    }

//var child = elem.children ? elem.children : elem.childNodes;

//for(var i=0;i<child.length;i++){

//    if(child[i].id == childId){

//        return child;

//    }

//}

    return undefined;

}

</script>

と、関数を作ったうえで、

var elem = getElementChildById('hoge2', 'list');

とするか・・・

※ これは、ブラウザの互換性確認が必要です。


あとは・・・

document.getElementsByTagName

などを利用して、複数のエレメントを指定し、ループしながら探索するしかないのではないでしょうか。

参考まで


4 ● keisukefukuda
●22ポイント

一般論としては、id属性が同じ要素が存在しているのはまずいのではないでしょうか?この場合には、classを使うべきです。

idとは「identifier」ですので、あるひとつのタグが特定できないとまずいと思われます。

このケースの場合、方法はいくつかあります


5 ● aerith
●10ポイント

/ ̄\

|/ ̄ ̄ ̄ ̄\

(ヽノ// //V\\ |/)

(((i )// (゚) (゚)| |( i))) document.getElementById? だめー

/∠彡\| ( _●_)||_ゝ \

( ___、 |∪| ,__ ) フツーにだめー★

| ヽノ /´

| /

id はドキュメント中一意という仕様があります。


1-5件表示/7件
4.前の5件|次5件6.

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ