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

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

x && x.nodeType!=1

如果找不到元素節點,那么這個循環就一直進行下去?

正在回答

3 回答

while (x && x.nodeType!=1)必須寫!必須判斷x為真 并且x.nodeType!=1才執行循環。你試著將var x=document.getElementsByTagName("li")[2];while (x && x.nodeType!=1)和while (x.nodeType!=1),就能看出有差別了,<li id="c">html</li>的下一個子節點是空白符再下一個就沒有了,是null(火狐瀏覽器),null屬于false,如果不判斷x是否為真,只寫while(x.nodeType!=1)是錯誤的語句,null是沒有nodeType屬性的,這里就出錯了,停住了,不在執行下面的return x;

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

x的意識是:“一個節點” ; ?&& 這個符號是邏輯操作符 “且”的意識;x.nodeType!=1 這個的意識是:這個節點的類型不是元素類型。

合起來:x && x.nodeType!=1 ? 的意識是,節點并且這個節點的類型不是元素類型,條件為true,執行操作,如果條件為false ?不執行!



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

不會的,首先你要理解x && x.nodeType!=1的意思,它等價于x且x.nodeType!=1;x和x.nodeType!=1是獨立的,沒有任何關系。如果找不到下一個節點,x會返回null,那么x的判斷為false,跳出循環。


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

舉報

0/150
提交
取消

x && x.nodeType!=1

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

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

幫助反饋 APP下載

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

公眾號

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