為什么我這樣寫頁面崩潰了
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('這個是空節(jié)點'); ????}
我這樣寫頁面崩潰了,我感覺沒有啥問題.....看不出來問題,然后我把
?while(a?&&?a.nodeType?!=?1)
改成
?while(i?&&?i.nodeType?!=?1)
就不會崩潰 ?還可以運行
2018-07-14
第四行:a = i.previousSibling; 改為 :a=a.previousSibiling;
因為你前面那種寫法 如果a是文本的話? 就會一直重復這句話而不是說跳過這個節(jié)點去判斷前一個節(jié)點,
2018-07-02
while(a?&&?a.nodeType?!=?1)是排除非元素節(jié)點
2018-07-02
while循環(huán)里面的a=?i.previousSibling; 改為 a= a.previousSibling才對,while循環(huán)的目的就是尋找過濾非空白節(jié)點的,當滿足while循環(huán)就說明a的previous是空白節(jié)點,所以應(yīng)該再找a的previous的previous