1

次のスニペットに似たコードがあります

 <div id="main">
  <div>
   <ul>
    <li>
      <table><tbody><tr><td></td></tr></tbody></table>
        <ul id="inner" > /* this ul has many nested children */</ul>
    </li>
    </ul>
  </div>   

「メイン」div内のすべてのタグを取得し、既にタグがある場合は新しいIDを設定したいと思います。以下のようなJavaScriptがあります

        var InfoMsg = "";
        var nodes = element.getElementsByTagName('*');
        for (var i = 0; i < nodes.length; i++) 
        {
            InfoMsg += nodes[i]
        }  
        alert(InfoMsg);

次のアラートが表示されます

 [object HTMLDivElement][object HTMLUListElement][object HTMLLIElement]
 [object HTMLTableElement][object HTMLTableSectionElement]
 [object HTMLTableRowElement][object HTMLTableCellElement]
 [object HTMLImageElement][object HTMLTableCellElement]
 [object HTMLTableCellElement]

内部 ul とその子が getElementsByTagName() メソッドによって取得されないのはなぜですか。それとも、そうする他の方法があります。

注 : 実行時には、「メイン」の div id のみがわかります。すべての子は動的で、任意の長さに実行できます。

前もって感謝します!!

4

0 に答える 0