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

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

關(guān)于判斷函數(shù)的問題

? ? function get_nextSibling(n){

? ? ? ? var x=n.nextSibling;

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

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

? ? ? ? }

? ? ? ? return x;

? ? }


? ? 我不太明白,當(dāng)x已經(jīng)被賦值了n的nextSibling,經(jīng)過判斷后,為什么還要再一次賦值x=x.previousSibling?

? ? 這樣的話,最后一個(gè)x的值難道不是已經(jīng)變成了n的nextSibling的nextSibling了嗎?

正在回答

2 回答

第一次x賦值了n的nextSibling,然后你要看判斷的是什么。他判斷的內(nèi)容是x不為null,且x的節(jié)點(diǎn)類型不為1(即元素節(jié)點(diǎn))的時(shí)候,再nextSibling一次。這里主要防止的是:有一些瀏覽器,會(huì)把兩個(gè)元素標(biāo)簽中間的空格和換行符當(dāng)成一個(gè)文本節(jié)點(diǎn),如果你不做一次過濾,有可能因?yàn)闉g覽器的原因,你的nextSibling節(jié)點(diǎn)不是你想要的元素節(jié)點(diǎn),而是一個(gè)空白的文本節(jié)點(diǎn)。

所以這個(gè)判斷的功能是,如果n的下一個(gè)節(jié)點(diǎn)是元素節(jié)點(diǎn),直接返回x。如果不是元素節(jié)點(diǎn)(那就是存在文本節(jié)點(diǎn)),將這個(gè)文本節(jié)點(diǎn)過濾掉,即再指向下一個(gè)節(jié)點(diǎn),直到找到下一個(gè)元素節(jié)點(diǎn)

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

function get_nextSibling(n){
? ? ? ?var x=n.nextSibling; // 進(jìn)入函數(shù),首先取得下一個(gè)兄弟節(jié)點(diǎn)
? ? ? ?while (x && x.nodeType!=1){ // x存在并且x不是元素節(jié)點(diǎn)(若不滿足,說明直接找到了兄弟節(jié)點(diǎn),那么就直接返回)
? ? ? ? ? ?x=x.nextSibling; ?// 滿足上述條件,進(jìn)入循環(huán)體,再次取x的兄弟節(jié)點(diǎn)賦值給x本身
? ? ? ?}
? ? ? ?return x;
? ?}

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

JasonYu_Law 提問者

所以取得兄弟節(jié)點(diǎn)的操作就有兩次了是吧,那么不就會(huì)變成提取下兩個(gè)節(jié)點(diǎn)的操作嗎
2016-12-30 回復(fù) 有任何疑惑可以回復(fù)我~
#2

JasonYu_Law 提問者

噢,我明白了,不是有效節(jié)點(diǎn)才再提取一次兄弟節(jié)點(diǎn)
2016-12-30 回復(fù) 有任何疑惑可以回復(fù)我~
#3

qq_____暖_0 回復(fù) JasonYu_Law 提問者

Yes!就是這個(gè)意思
2016-12-30 回復(fù) 有任何疑惑可以回復(fù)我~
#4

JasonYu_Law 提問者 回復(fù) qq_____暖_0

謝謝!
2016-12-30 回復(fù) 有任何疑惑可以回復(fù)我~
查看1條回復(fù)

舉報(bào)

0/150
提交
取消

關(guān)于判斷函數(shù)的問題

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

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

幫助反饋 APP下載

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

公眾號

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