パーマリンク | 2007年12月16日 03:06
javascriptで子要素を取得する方法についてのメモ
HTMLオブジェクト?ではgetElementsByTagNameメソッドが利用できる。「id」が「getJS」の「ul」以下の要素に含まれるHTMLを表示。
onload = function(){
var self = this;
this.ul = document.getElementById("getJS");
var bt1 = document.MyForm.type1;
var bt2 = document.MyForm.type2;
var bt3 = document.MyForm.type3;
bt1.onclick = function(){
var lis = self.ul.getElementsByTagName("li");
for(i=0; i<lis.length; i++){
alert(lis[i].innerHTML);
}
}
bt2.onclick = function(){
var lis = self.ul.childNodes;
for(i=0; i<lis.length; i++){
alert(lis[i].innerHTML);
}
}
bt3.onclick = function(){
var lisTag = self.ul.getElementsByTagName("li");
var lisNode = self.ul.childNodes;
alert("getElementsByTagNameでの結果:" + lisTag.length);
alert("childNodesでの結果:" + lisNode.length);
}
}
<ul id="getJS">
<li>ハウジングサービス
<ul><li>コロケーション</li></ul>
</li>
<li>専用サーバ</li>
<li>共有レンタルサーバ</li>
<li>VPS</li>
</ul>
<form name="MyForm">
<input type="button" name="type1" value="type1" />
<input type="button" name="type2" value="type2" />
<input type="button" name="type3" value="type3" />
</form>
例によってIEとfirefoxで挙動が違う。type3のクリック結果から原因はchildNodesのようだ。ブラウザ間の厚い壁を乗り越えられるようになりたい・・・
Copyright 2006-2008 KANTENNA.COM Reserved.