為什么這個(gè)代碼一提交就卡了
//前一個(gè)節(jié)點(diǎn)
? ? function get_previousSibling(n){
? ? ? ??
? ? ? ? var a=n.previousSibling;
? ? ? ? while (a && a.nodeType!=1){
? ? ? ? ? ? a=n.previousSibling;
? ? ? ? }
? ? ? ? return a;
? ? }
? ? var a = document.getElementsByTagName("li")[4];
? ? document.write(a.nodeName);
? ? document.write(" = ");
? ? document.write(a.innerHTML);
? ??
? ? var b = get_previousSibling(a);
? ??
? ? if(b!=null){
? ? ? ? document.write("<br />presibling: ");
? ? ? ? document.write(b.nodeName);
? ? ? ? document.write(" = ");
? ? ? ? document.write(b.innerHTML+'<br>');
? ? }
2016-12-19
卡了一般都是你代碼死循環(huán) ?導(dǎo)致瀏覽器崩潰了
你代碼唯一能崩潰的就是 while那里的循環(huán)
? ?while (a && a.nodeType!=1){
? ? ? ? ? ? a=n.previousSibling;
? ? ? ? }
只要a且a的類型不為1的時(shí)候 ?
a等于n的上一個(gè)節(jié)點(diǎn)
只要滿足 ?只要a且a的類型不為1的時(shí)候 ??這里a就一直等于n的上一個(gè)節(jié)點(diǎn)
? ?死循環(huán)了
正確的是
while (a && a.nodeType!=1){
? ? ? ? ? ? a=a.previousSibling;
? ? ? ? }
只要滿足 ?只要a且a的類型不為1的時(shí)候 ??這里a就一直等于a的上一個(gè)節(jié)點(diǎn)
a就一直向上跳 ?直到找到類型不為1 或者a不存在的的時(shí)候就停止了