今天看了下EXTJS源代码。其中有一函数是删除dom节点的,它是这么写的。
removeNode : isIE ? function() {
var d;
return function(n) {
if(n) {
d = document.createElement("DIV");
d.appendChild(n);
d.innerHTML = '';
}
}
}() : function(n) {
if(n && n.parentNode) {
n.parentNode.removeChild(n);
}
};d = document.createElement("DIV");
d.appendChild(n);
d.innerHTML = '';
主要是这一段:
先创建一个div,再把节点添加到div中,再清除div的innerHTML值。它是达到了删除节点的功能。但为什么要在IE下这么做呢?难道n.parentNode.removeChild(n)。在IE下不能删除,还是有其它的原因?谢谢。
removeNode : isIE ? function() {
var d;
return function(n) {
if(n) {
d = document.createElement("DIV");
d.appendChild(n);
d.innerHTML = '';
}
}
}() : function(n) {
if(n && n.parentNode) {
n.parentNode.removeChild(n);
}
};d = document.createElement("DIV");
d.appendChild(n);
d.innerHTML = '';
主要是这一段:
先创建一个div,再把节点添加到div中,再清除div的innerHTML值。它是达到了删除节点的功能。但为什么要在IE下这么做呢?难道n.parentNode.removeChild(n)。在IE下不能删除,还是有其它的原因?谢谢。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货