在ie中,新创建一个div,并没有把这个新建的div添加到其他元素的childs中var div = document.createElement("div");
alert(div.parentNode);
此时div.parentNode为null如果我给这个div的innerHTML赋了值后,div.parentNode就有了值
var div = document.createElement("div");
div.innerHTML = "<span></span>";
alert(div.parentNode);
此时div.parentNode为object不解,另外在safari下,两种方式的div.parentNode都为null

解决方案 »

  1.   

    建议你看下DOM树的相关概念,var div = document.createElement("div")只是创建了一个元素,并没有添加到DOM树中来,当然parentNode为null,用appendChild()方法可以添加到DOM树中
      

  2.   

    我的意思是我并没有把这个新建的div加到dom树中,仅仅是随便给他的innerHTML赋了这个值,这个div就有parentNode了,ls的再好好看看
      

  3.   

    var div = document.createElement("div");
    div.innerHTML = "<span></span>";
    alert(div.parentNode);
    在其他浏览器下,div.parentNode都为空
    在ie下,你可以试一下div.parentNode.nodeName弹出的是#document-fragment即文档碎片
      

  4.   

    var div = document.createElement("div");
    div.innerHTML = "<span></span>";
    alert(div.parentNode);
    alert(div.parentNode.nodeType) //ie下是11  可以看出是一个碎片节点ppk说过这个叫 超空间   网上页有很多这方面的解释  ie6下用removeChild清除节点很可能会清不干净
    http://www.cnblogs.com/bluedream2009/archive/2010/02/23/1672133.html
      

  5.   

    object
     为所有 的 父类