怎样用js操作html dom的property(注意,不是attribute)呢?比如我要删除一个node的"parentNode"这个property,在js里面应该怎么做呢?
试了一下node.parentNode = undefined;或者node.parentNode = null;都不行,还是可以把node.parentNode或者node.parentNode.tagName打印出来。是什么原因呢?

解决方案 »

  1.   

    有很多属性都是只读的,只读的属性是无法修改的。比如parentNode nodeName nodeType等等都是只读的。如果你删除parentNode,那么这个parentNode的所有子node也将被删除,换句话就是做不到删除一个node的parentNode,只能删除node的child,删除这个child的时候child所有的child也将被全部删除。
      

  2.   

    哦,其实是这样,我是想删除一个child对其parent的引用,这个引用貌似是通过parentNode属性完成的,可以做到吗?
      

  3.   

    个人觉得无法完成,请看下面的例子,tr是td的parentNode,删除了tr,td也没有意义。<table>
      <tr>
        <td>John</td>
        <td>Doe</td>
        <td>Alaska</td>
      </tr>
    </table>
      

  4.   

    应该是做不到,一个xml型的树,当你确定了它的结构,那node之间的关系也就确定了,举个例子:<div id='top'>
        <div id='child'></div>
    </div>上面两个div,top有一个子节点child。无论你怎么修改这两个节点的属性,top都是child的parentNode。除非你修改这个结构。换句话,如果有一个非根节点的节点,它就必存在一个父节点,且无法通过修改属性来改变它们的关系,只能通过修改结构来修改。
      

  5.   

    因为没法把带循环引用的html dom结构转化成json text,所以我才在想把对parent的引用去掉。
      

  6.   

    如果能操作的话 jquery也不需要去特意封装了