課程
/前端開發
/JavaScript
/JavaScript進階篇
如果找不到元素節點,那么這個循環就一直進行下去?
2016-03-31
源自:JavaScript進階篇 9-11
正在回答
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;
x的意識是:“一個節點” ; ?&& 這個符號是邏輯操作符 “且”的意識;x.nodeType!=1 這個的意識是:這個節點的類型不是元素類型。
合起來:x && x.nodeType!=1 ? 的意識是,節點并且這個節點的類型不是元素類型,條件為true,執行操作,如果條件為false ?不執行!
不會的,首先你要理解x && x.nodeType!=1的意思,它等價于x且x.nodeType!=1;x和x.nodeType!=1是獨立的,沒有任何關系。如果找不到下一個節點,x會返回null,那么x的判斷為false,跳出循環。
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
3 回答x && x.nodeType!=1
4 回答while (x && x.nodeType!=1){ x=x.nextSibling; }
5 回答while (x && x.nodeType!=1)
5 回答(x&&x.nodeType!=1)的問題
1 回答x && x.nodeType!=1不懂
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-04-19
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;
2016-04-01
x的意識是:“一個節點” ; ?&& 這個符號是邏輯操作符 “且”的意識;x.nodeType!=1 這個的意識是:這個節點的類型不是元素類型。
合起來:x && x.nodeType!=1 ? 的意識是,節點并且這個節點的類型不是元素類型,條件為true,執行操作,如果條件為false ?不執行!
2016-04-01
不會的,首先你要理解x && x.nodeType!=1的意思,它等價于x且x.nodeType!=1;x和x.nodeType!=1是獨立的,沒有任何關系。如果找不到下一個節點,x會返回null,那么x的判斷為false,跳出循環。