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

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

下方代碼中while (x && x.nodeType!=1),x.nodeType=1說明是一個元素節點,那x這個條件是什么意思?

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>nextSibling</title>

</head>

<body>

<ul id="u1"> ??

? ? ? ? ? ? <li id="a">javascript</li> ??

? ? ? ? ? ? <li id="b">jquery</li> ??

? ? ? ? ? ? <li id="c">html</li> ??

? ? ? ? </ul> ??

? ? ? ? <ul id="u2"> ??

? ? ? ? ? ? <li id="d">css3</li> ??

? ? ? ? ? ? <li id="e">php</li> ??

? ? ? ? ? ? <li id="f">java</li> ??

? ? ? ? </ul> ??

<script type="text/javascript">

? ? function get_nextSibling(n){

? ? ? ? var x=n.nextSibling;

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

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

? ? ? ? }

? ? ? ? return x;

? ? }

? ??

? ? var x=document.getElementsByTagName("li")[0];

? ? document.write(x.nodeName);

? ? document.write(" = ");

? ? document.write(x.innerHTML);

? ??

? ? var y=get_nextSibling(x);

? ??

? ? if(y!=null){

? ? ? ? document.write("<br />nextsibling: ");

? ? ? ? document.write(y.nodeName);

? ? ? ? document.write(" = ");

? ? ? ? document.write(y.innerHTML+"<br ?/><br ?/>");

? ? }else{

? ? ? document.write("<br>已經是最后一個節點"+"<br /><br ?/>"); ? ? ?

? ? }

</script>

</body>

</html>


正在回答

2 回答

var x=n.nextSibling;

從這句話看出x 是變量,用來存放傳入的對象的下一個兄弟,如果這個兄弟type不是1,那么把這個兄弟賦給x,繼續找下一個兄弟,如果type是1,跳出循環,return x,把這個type是1的對象返回

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

徐錦杰 提問者

你說的還是x.nodeType這個循環條件的意思。我看了下,把x放在循環條件里的意思應該是,當x非null且x.nodeTyoe非1,賦值下一個兄弟元素,當x為null時,返回值為null。(x為null時,x.nodeType也是非1 ,不加這個條件會陷入死循環了) 你看這個理解對不
2016-11-06 回復 有任何疑惑可以回復我~
#2

慕沐9023737 回復 徐錦杰 提問者

x非null是怎么理解出來的? 菜鳥問
2016-11-08 回復 有任何疑惑可以回復我~
#3

徐錦杰 提問者 回復 慕沐9023737

條件為null,就是false,非null就是true。while(null)就是條件不符合,而不是當null時執行,你簡單的寫下下面的代碼驗證下就行了,當if(x)就不會執行,你想問的時這個嗎? var x=null; if(!x) { document.write("111"); }
2016-11-08 回復 有任何疑惑可以回復我~
#4

慕沐9023737

回復 徐錦杰 提問完之后立刻就懂了,哈哈,可惜沒得撤回。在這節卡了好久看你提問的終于理解了。
2016-11-09 回復 有任何疑惑可以回復我~
查看1條回復

你這么理解得到的結果一樣,但對且這個條件的判斷理解有誤,系統先判斷x是不是null,如果是null系統不會再判斷后面的x.nodeType了,而是直接跳出循環

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

霸氣雄圖四分會MT七葉一枝花

因為只要&&前面的一項為假,這個表達式整個就是假值,后面的x.nodeType是什么已經不重要了,這是一種機制
2016-11-06 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

下方代碼中while (x && x.nodeType!=1),x.nodeType=1說明是一個元素節點,那x這個條件是什么意思?

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

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

幫助反饋 APP下載

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

公眾號

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