parentnode(parentNode和parentElement)
无法获取未定义或null引用的属性parentnode
var node=document.getElementById("__ax2sd2sdfkd");
获取的node变量是个null,下一行再点取时自己出空指针异常。
首先要保护一下
if(node != null) {
....
}
其次,考虑一下 "__ax2sd2sdfkd" 这个ID肯定存在吗?它的名字是不是随机的?有没有拼写错误?
解释下这条语句this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);这句可以这样看:
第一部分this.parentNode.parentNode.parentNode.
第二部分:removeChild(this.parentNode.parentNode);
第一部分意思是:匹配到this所指向的元素的父容器的父容器的父容器,也就是在这个元素外面第三层包裹他的那个元素。
第二部分意思就是:删除这个节点,并且是删除的是这个this元素指向的元素的父容器的父容器,也就是这个元素第二层包裹它的那个元素。
例如:
div id="div1"
div id="div2"
div id="div3"
p1/p
p1/p
p1/p
/div
/div
/div
如果this是指向p元素的,那么你上面这段代码意思就是删除p元素外面第三层的div下的id是div2的元素。
删除后的代码就只剩下:
div id="div1"
/div了。
js里parentNode是获得父节点,那么怎么获得子节点呢
parentNode.childNode:
parentObj.firstChild:如果节点为已知节点(parentObj)的第一个子节点就可以使用这个方法。这个属性是可以递归使用的,也就是支持parentObj.firstChild.firstChild.firstChild...的形式,如此就可以获得更深层次的节点。