為什么 申明了x,而且給x賦值了,var x=n.nextSibling; 在while循環中又賦值一次,豈不是為兄弟節點的兄弟節點了??
為什么 ? 申明了x,而且給x賦值了,var x=n.nextSibling; ?在while循環中又賦值一次,豈不是為兄弟節點的兄弟節點了??難道我理解錯了?
????function?get_nextSibling(n){ ????????var?x=n.nextSibling; ????????while?(x?&&?x.nodeType!=1){ ???????????x=x.nextSibling; ????????} ????????return?x; ????}
2015-09-02
在while之前是為了獲得下一個兄弟節點,【因為Internet Explorer 會忽略節點間生成的空白文本節點(例如,換行符號),而其它瀏覽器不會忽略?!坎⒉恢朗窃毓濣c,還是文本節點,所以在while循環中只篩選出了元素節點,只是排除了不是元素節點的情況,并沒有再次給x賦值。
2015-08-18
這里在函數里 var?x,代表x是局部變量,只在函數體內部有效。出了函數體外就不起作用了?;蛘吣阆冗@樣理解
把函數體里的x換成其他字母。
function?get_nextSibling(n){
????????var?a=n.nextSibling;
????????while?(a?&&?a.nodeType!=1){
???????????a=a.nextSibling;
????????}
????????return?a;
????}
只是想說,函數里的x因為在函數體內var了,所以和函數體外的x是完全不同的變量。你可以看一下全局變量和局部變量的內容。
PS。本人也是菜鳥,說的不對,敬請諒解。
加油