HOME>WEBプログラム覚書>javascript 子要素取得のメモ

javascript 子要素取得のメモ

javascriptで子要素を取得する方法についてのメモ

HTMLオブジェクト?ではgetElementsByTagNameメソッドが利用できる。「id」が「getJS」の「ul」以下の要素に含まれるHTMLを表示。

サンプル

Javascript

  1. onload = function(){
  2.   var self = this;
  3.   this.ul = document.getElementById("getJS");
  4.   var bt1 = document.MyForm.type1;
  5.   var bt2 = document.MyForm.type2;
  6.   var bt3 = document.MyForm.type3;
  7.  
  8.   bt1.onclick = function(){
  9.     var lis = self.ul.getElementsByTagName("li");
  10.     for(i=0; i<lis.length; i++){
  11.       alert(lis[i].innerHTML);
  12.     }
  13.   }
  14.  
  15.   bt2.onclick = function(){
  16.     var lis = self.ul.childNodes;
  17.     for(i=0; i<lis.length; i++){
  18.       alert(lis[i].innerHTML);
  19.     }
  20.   }
  21.  
  22.   bt3.onclick = function(){
  23.     var lisTag = self.ul.getElementsByTagName("li");
  24.     var lisNode = self.ul.childNodes;
  25.     alert("getElementsByTagNameでの結果:" + lisTag.length);
  26.     alert("childNodesでの結果:" + lisNode.length);
  27.   }
  28. }
  29.  

HTML

  1. <ul id="getJS">
  2.     <li>ハウジングサービス
  3.         <ul>
  4.         <li>コロケーション</li>
  5.         </ul>
  6.     </li>
  7.     <li>専用サーバ</li>
  8.     <li>共有レンタルサーバ</li>
  9.     <li>VPS</li>
  10. </ul>
  11. <form name="MyForm">
  12.     <input type="button" name="type1" value="type1" />
  13.     <input type="button" name="type2" value="type2" />
  14.     <input type="button" name="type3" value="type3" />
  15. </form>
  16.  

実行結果

  • ハウジングサービス
    • コロケーション
  • 専用サーバ
  • 共有レンタルサーバ
  • VPS

例によってIEとfirefoxで挙動が違う。type3のクリック結果から原因はchildNodesのようだ。ブラウザ間の厚い壁を乗り越えられるようになりたい・・・

投稿日 2007年12月16日 03:06
カテゴリ JavaScript
タグ テストコード | 関数
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1115

コメント

コメントする
Name
Email Address
URL