亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么 申明了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;
????}


正在回答

2 回答

在while之前是為了獲得下一個兄弟節點,【因為Internet Explorer 會忽略節點間生成的空白文本節點(例如,換行符號),而其它瀏覽器不會忽略?!坎⒉恢朗窃毓濣c,還是文本節點,所以在while循環中只篩選出了元素節點,只是排除了不是元素節點的情況,并沒有再次給x賦值。

0 回復 有任何疑惑可以回復我~

這里在函數里 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。本人也是菜鳥,說的不對,敬請諒解。

加油

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么 申明了x,而且給x賦值了,var x=n.nextSibling; 在while循環中又賦值一次,豈不是為兄弟節點的兄弟節點了??

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號