问答详情
源自:4-2 如何判断节点是元素节点

鄙人小白,不懂此处testDiv.appendChild(obj);testDiv.removedChild(obj);?

try{
    testDiv.appendChild(obj);
    testDiv.removedChild(obj);
   }catch(e){
       return false;
       }


提问者:Even何斌 2016-06-10 18:27

个回答

  • 愤奋翁3305179
    2016-06-11 00:19:20

    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必然不是元素节点,返回判断结果为假!】