第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

一直捋不順方法里對X的賦值,為什么要兩次賦值呢?在IE中不會變成下兩個節(jié)點么?

?function get_nextSibling(n){

? ? ? ? var x=n.nextSibling;

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

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

? ? ? ? }

? ? ? ? return x;

? ? }


正在回答

5 回答

?function get_nextSibling(n){

? ? ? ??var x=n.nextSibling; ------------> 這里是檢測又沒有下一個兄弟節(jié)點,無則賦null值

【說明下:1.這個x有可能返回的是空格符即為文本節(jié)點,nodeTpye=3;2.這個x有可能是返回null】

? ? ? ? while (x && x.nodeType!=1){ ----------> 當(dāng)有下一個兄弟節(jié)點但他的兄弟節(jié)點不是元素節(jié)點

? ? ? ??? ? x=x.nextSibling; ?-------->則繼續(xù)讀一下個子節(jié)點,并賦值給x

? ? ? ? }

? ? ? ? return x;----------->返回第一次調(diào)用函數(shù)的值(可能是文本節(jié)點,nodeType=3,也可能是null)

? ? }


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕蓋茨2022422 提問者

非常感謝!
2016-09-12 回復(fù) 有任何疑惑可以回復(fù)我~

首先,我們是需要確定x為n這個參數(shù)的下一個兄弟元素,并且要求它為元素節(jié)點,這樣可以避免因為瀏覽器問題導(dǎo)致的空白文本節(jié)點,因此,用了while循環(huán),x && x.nodeType!=1,是判斷x是否存在,并且type是不是“不是1”

如果是“不是1”,則執(zhí)行下面語句,x=x.nextSibling;,目的是跳過“不是1”的空白文本節(jié)點


如果是“是1”,則確定它為元素節(jié)點,不需要跳過,返回值為最初賦值的var x=n.nextSibling;,因為經(jīng)過了while的判斷,此時的x.nodeType肯定是1,因而肯定是元素節(jié)點

0 回復(fù) 有任何疑惑可以回復(fù)我~

我想我們是被判斷節(jié)點nodeType是否為1, 如是為元素節(jié)點,跳過這句話搞錯了,我個人認(rèn)為這句話是錯的,因為我們的n是一個元素節(jié)點,所以它的下一個兄弟節(jié)點肯定也是一個元素節(jié)點,而元素節(jié)點的類型是1,while(x&&x.nodeType!=1){x=x.nextSibling;}這句話是當(dāng)x的nextSibling不是元素節(jié)點的話,他就繼續(xù)往下遍歷,直至到最后一個兄弟節(jié)點。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕蓋茨2022422 提問者

對沒錯就是這個意思,就想知道為什么不是 while (x && x.nodeType==1){ x=x.nextSibling;}
2016-09-06 回復(fù) 有任何疑惑可以回復(fù)我~
#2

qq_Mark單_0

回復(fù) 革命遙遙無期我覺得就是被注意的那句話誤導(dǎo)了,只要不是元素節(jié)點他就是會一直往后面檢測即nextSibling,你現(xiàn)在看了http://idcbgp.cn/video/2140這頁的知識了嗎,我一直搞不清楚!
2016-09-09 回復(fù) 有任何疑惑可以回復(fù)我~
#3

Airly

為什么n是元素節(jié)點下一個子節(jié)點就一定是元素節(jié)點呢,下一個子節(jié)點也有可能是文本節(jié)點啊,因為你看明明后面緊接的是空白的換行符,而瀏覽器默認(rèn)這個為文本節(jié)點。所以,那里判斷是否為元素節(jié)點的用途就是,如果不是元素節(jié)點就訪問下一個子節(jié)點,如果是的話就返回當(dāng)前訪問到的節(jié)點。
2016-09-12 回復(fù) 有任何疑惑可以回復(fù)我~
#4

慕蓋茨2022422 提問者 回復(fù) qq_Mark單_0

當(dāng)X不等1的時候說明X值是一個文本(空隔)既然是個空格我們就該跳過它(讓X值為下一個兄弟節(jié)點),如果X=1則說明X所獲取到的值為元素就不需要繼續(xù)向下尋找了直接返回X
2016-09-12 回復(fù) 有任何疑惑可以回復(fù)我~
#5

Airly 回復(fù) 慕蓋茨2022422 提問者

是的,就是你理解的這個意思。
2016-09-12 回復(fù) 有任何疑惑可以回復(fù)我~
查看2條回復(fù)

謝謝,我還想再問一下既然X存在且不是元素那為什么還要讓它的值為下一個值呢?

0 回復(fù) 有任何疑惑可以回復(fù)我~

這不是第二次賦值,只是覆蓋了之前的變量的值。

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

一直捋不順方法里對X的賦值,為什么要兩次賦值呢?在IE中不會變成下兩個節(jié)點么?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號