http://www.asahi-net.or.jp/~dp8t-asm/java/articles/XMLJava2/arti...
document.getElementById("list");
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")
として参照して下さい。
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
などを利用して、複数のエレメントを指定し、ループしながら探索するしかないのではないでしょうか。
参考まで
一般論としては、id属性が同じ要素が存在しているのはまずいのではないでしょうか?この場合には、classを使うべきです。
idとは「identifier」ですので、あるひとつのタグが特定できないとまずいと思われます。
このケースの場合、方法はいくつかあります
/ ̄\
|/ ̄ ̄ ̄ ̄\
(ヽノ// //V\\ |/)
(((i )// (゚) (゚)| |( i))) document.getElementById? だめー
/∠彡\| ( _●_)||_ゝ \
( ___、 |∪| ,__ ) フツーにだめー★
| ヽノ /´
| /
id はドキュメント中一意という仕様があります。