try{ testDiv.appendChild(obj); testDiv.removedChild(obj); }catch(e){ return false; }
try{
testDiv.appendChild(obj); //把要检验的obj作为子节点添加给testDiv节点
testDiv.removedChild(obj);//把testDiv中为obj的子节点移除
}catch(e){
return false;//如果以上两者运行中有错误则返回false
}
比如你传入的是变量a 但是变量a不是一个节点元素,所以就不能作为节点被添加到testDiv中或者被删除,则会返回false,而如果a是被createElementNode(’a‘)之后,则这个a就是一个被创建的元素节点,可以被添加到任何一个元素节点作为子节点或者被删除,而案例中多出这一步检验也是因为当你使用isElement这个方法检验obj是不是一个元素节点的时候容易出错,也就是可以把一个声明中有nodetype=1的json对象也当做成元素节点,很显然这个方法不严谨也不符合检测的目的,所以才要检测真假:【如果obj本身就是元素节点,则就必然可以作为子节点被添加和被删除,则返回判断结果为真!
如果obj本身是有声明过nodetype=1的json对象,即使obj在第一层if判断中nodetype=1通过,则第二层检测到他不能作为子节点被添加和被删除,则obj必然不是元素节点,返回判断结果为假!】