我的理解和疑惑,加了點注釋
function get_nextSibling(n){//n為假定的一個初始節點,形參
? ? ? ? var x=n.nextSibling;//x為假定節點n的下一個節點,形參
? ? ? ? while (x && x.nodeType!=1){//如果下一個節點(即x)不是元素節點
? ? ? ? ? ? x=x.nextSibling;//就把x變成當前節點(作用相當于n),繼續循環驗證
? ? ? ? }
? ? ? ? return x;//是元素節點,則返回形參x
? ? }
? ? var x=document.getElementsByTagName("li")[0];//x被賦值為實參,這里的賦值應該與函數內的x無關
? ? var y=get_nextSibling(x);//調用函數來找出y是x的下一個元素節點? ??
? ? if(y!=null){//驗證y是否為最后一個元素節點
? ? 不知道對不對,但不懂的還是n為什么會被假定為節點,是因為.nextSibling屬性而被當作一個節點嗎
2016-07-09
n就只是一個形參,因為調用函數的時候get_nextSibling(x),已經把x(全局)這個變量傳遞進來了,就相當于n就是這個x(全局),而這個x(全局)又是你找到的li元素節點。這個全局的x和你寫在函數get_nextSibling()的x(局部)變量沒有直接的關系。所以我建議你要是搞不清楚,你可以把x(局部)改成其它的變量名,比如x1,x2,z1等等其它的。不知道你是不是想問的是這個?哦,對了,函數內的形參n我建議你直接把它看作全局的x,這樣應該好理解一些!