<!--
<div id="div_all"> 
  <div id="div_1"> </div> 
  <div id="div_2"> 
    <div id="div_2_1">测试 </div> 
  </div> 
</div>
--><script language="javascript">
  var elem = top.document.createElement("div");  //根
  elem.innerHTML = "<div id=\"div_1\"> </div> <div id=\"div_2\"> <div id=\"div_2_1\">测试 </div> </div> ";
  var elem_son = elem.all.item("div_2_1"); 
  alert(elem_son.innerHTML); 
</script> 把根div改成动态创建的,用getElementById就不行了。我是想在这种动态创建的情况下,得到子对象。

解决方案 »

  1.   

    getElementById是document对象的方法
    你动态创建的elem根本没append到document里面,能找到才怪了~
      

  2.   

    你先添加到body中在document.getElementById要不只能getElementsByTagName然后遍历返回的数组了
      var elem = top.document.createElement("div");  //根 
      elem.innerHTML = " <div id=\"div_1\"> </div> <div id=\"div_2\"> <div id=\"div_2_1\">测试 </div> </div> "; 
    var ds=elem.getElementsByTagName("div");for(var i=0;i<ds.length;i++)
      if(ds[i].id=="div_2_1"){alert(ds[i].innerHTML);break;}
      //var elem_son = elem.all.item("div_2_1"); 
     // alert(elem_son.innerHTML); 
      

  3.   

    不明白你的什么用意知道ID就用document.getElementById("div_2_1")