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

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

關于while不明白的同學可以看看!

看好多同學有疑問。解析下這個代碼:

while (x && x.nodeType!=1){

? ? ? ? ? ? x=x.nextSibling;

? ? ? ? }

? ? ? ? return x;

? ? }

首先,這個判定是在函數內部。函數的參數是n,n的值是在定義y的時候傳給它的。即n=document.getElementsByTagName("li")[0]也就是所有li元素的第一個li。 傳進來之后呢? 通過函數進行處理之后賦值給y。 函數怎么處理的呢?首先n被傳入,函數內部定義x=n.nextSibling。這里就是第一個li元素后面的元素賦值給x。然后開始判斷x是否等于1。不等于1呢?x=x.nextSibling; 不等于1就意味著后面的換行符被當作空白的節點那么這個節點后面的節點就是我們想要的。所以x=x.nextSibling,就是自身后面的節點賦值給自己。此時x就是這個空節點后面的兄弟節點。也就是第二個li元素。 如果等于1呢?x=n.nextSibling n是被傳入第一個li元素節點了,那么n.nextSibling就是第一個li后面的兄弟元素(第二個li元素),并賦值給自己,此刻x等于它自身后面的兄弟元素。


正在回答

2 回答

此中的1表示什么意思???是表示判斷是否為空的意思嗎?

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

imSeveNyU

x && x.nodeType!=1這里的x是指是否存在,x.nodeType判斷節點的類型,返回值用12個數值常量來表示,1的意思是元素節點。換句話說,這里判斷是空白節點,如回車,空格。
2015-10-01 回復 有任何疑惑可以回復我~
#2

慕瓜1048528 回復 imSeveNyU

x.nodeType有什么用?它都有值的。還有是(x&&x.nodeType)!=1,這樣運算的嗎?
2015-10-03 回復 有任何疑惑可以回復我~

如果連續兩個空白節點呢?那這個while就沒有效果了。有什么更好的判斷方法么?

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

舉報

0/150
提交
取消

關于while不明白的同學可以看看!

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

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

幫助反饋 APP下載

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

公眾號

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