為什么我這樣寫頁(yè)面崩潰了
function?get_previousSibling(i){ ????????var?a?=?i.previousSibling; ????????while(a?&&?a.nodeType?!=?1){ ????????????a=?i.previousSibling; ????????} ????????return?a; ????} ????var?b?=?document.getElementsByTagName('li')[1]; ????document.write(b.nodeName); ????document.write('?=?'); ????document.write(b.innerHTML+'<br>'); ???? ????var?c?=?get_previousSibling(b); ????if(c!=null){ ????????document.write(c.nodeName); ????????document.write('?=?'); ????????document.write(c.innerHTML); ????}else{ ????????document.write('這個(gè)是空節(jié)點(diǎn)'); ????}
我這樣寫頁(yè)面崩潰了,我感覺(jué)沒(méi)有啥問(wèn)題.....看不出來(lái)問(wèn)題,然后我把
?while(a?&&?a.nodeType?!=?1)
改成
?while(i?&&?i.nodeType?!=?1)
就不會(huì)崩潰 ?還可以運(yùn)行
2018-07-14
第四行:a = i.previousSibling; 改為 :a=a.previousSibiling;
因?yàn)槟闱懊婺欠N寫法 如果a是文本的話? 就會(huì)一直重復(fù)這句話而不是說(shuō)跳過(guò)這個(gè)節(jié)點(diǎn)去判斷前一個(gè)節(jié)點(diǎn),
2018-07-02
while(a?&&?a.nodeType?!=?1)是排除非元素節(jié)點(diǎn)
2018-07-02
while循環(huán)里面的a=?i.previousSibling; 改為 a= a.previousSibling才對(duì),while循環(huán)的目的就是尋找過(guò)濾非空白節(jié)點(diǎn)的,當(dāng)滿足while循環(huán)就說(shuō)明a的previous是空白節(jié)點(diǎn),所以應(yīng)該再找a的previous的previous