鄙人小白,不懂此處testDiv.appendChild(obj);testDiv.removedChild(obj);?
try{ ????testDiv.appendChild(obj); ????testDiv.removedChild(obj); ???}catch(e){ ???????return?false; ???????}
try{ ????testDiv.appendChild(obj); ????testDiv.removedChild(obj); ???}catch(e){ ???????return?false; ???????}
2016-06-10
舉報(bào)
2016-06-11
try{
????testDiv.appendChild(obj); //把要檢驗(yàn)的obj作為子節(jié)點(diǎn)添加給testDiv節(jié)點(diǎn)
????testDiv.removedChild(obj);//把testDiv中為obj的子節(jié)點(diǎn)移除
???}catch(e){
???????return?false;//如果以上兩者運(yùn)行中有錯(cuò)誤則返回false?
???????}
比如你傳入的是變量a 但是變量a不是一個(gè)節(jié)點(diǎn)元素,所以就不能作為節(jié)點(diǎn)被添加到testDiv中或者被刪除,則會(huì)返回false,而如果a是被createElementNode(’a‘)之后,則這個(gè)a就是一個(gè)被創(chuàng)建的元素節(jié)點(diǎn),可以被添加到任何一個(gè)元素節(jié)點(diǎn)作為子節(jié)點(diǎn)或者被刪除,而案例中多出這一步檢驗(yàn)也是因?yàn)楫?dāng)你使用isElement這個(gè)方法檢驗(yàn)obj是不是一個(gè)元素節(jié)點(diǎn)的時(shí)候容易出錯(cuò),也就是可以把一個(gè)聲明中有nodetype=1的json對(duì)象也當(dāng)做成元素節(jié)點(diǎn),很顯然這個(gè)方法不嚴(yán)謹(jǐn)也不符合檢測(cè)的目的,所以才要檢測(cè)真假:【如果obj本身就是元素節(jié)點(diǎn),則就必然可以作為子節(jié)點(diǎn)被添加和被刪除,則返回判斷結(jié)果為真!
如果obj本身是有聲明過nodetype=1的json對(duì)象,即使obj在第一層if判斷中nodetype=1通過,則第二層檢測(cè)到他不能作為子節(jié)點(diǎn)被添加和被刪除,則obj必然不是元素節(jié)點(diǎn),返回判斷結(jié)果為假!】