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

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

JS關(guān)于函數(shù)的問題,

9-11章 訪問兄弟節(jié)點(diǎn),斷斷續(xù)續(xù)弄了好幾天沒搞懂,有幾個(gè)點(diǎn),需要大家解惑

?function fn(a){
??????? var x=1;
???????? while (x && x.nodeType!=1){
??????????? x=3;
????????? }
??????? return x;
??????????????? }
??? fn(4);

這段代碼,和下面的代碼,

function?get_nextSibling(n){

????????var?a=n.nextSibling;

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

???????????a=a.nextSibling;

????????}

????????return?a;

????}

如果把獲取兄弟節(jié)點(diǎn)改成number數(shù)字,來寫的話, 1、第一段代碼中的運(yùn)行原理和第二段相同么。2、第一段代碼運(yùn)行不了,服務(wù)器崩潰,問題出在哪里。3??

var x=1;
???????? while (x && x.nodeType!=1){
??????????? x=3;
????????? }
??????? return x;

? var?a=n.nextSibling;

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

???????????a=a.nextSibling;

????????}

????????return?a;

中,已經(jīng)申明了局部函數(shù),并進(jìn)行了初始化 賦值,那while里的 ? x=3;和a=a.nextSibling;又是什么意思 ,我覺得 應(yīng)該是執(zhí)行while循環(huán),如果條件成立,那么將變量 重新賦值,但是,第一種 運(yùn)行不了,第二種我還沒看懂。求各位大大科普

正在回答

2 回答

ok.

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

第一段代碼你給x賦值之后他不就是文本節(jié)點(diǎn)了么,總之肯定不是元素節(jié)點(diǎn),所以x的nodeType肯定不是1,那么只要x不是0,這個(gè)循環(huán)就會(huì)永遠(yuǎn)持續(xù)下去,而事實(shí)上他也確實(shí)不會(huì)為0,這是一個(gè)死循環(huán);

第二段代碼段的意義是為了找出n的下一個(gè)元素節(jié)點(diǎn)。默認(rèn)傳入的參數(shù)n是一個(gè)節(jié)點(diǎn),那么進(jìn)來之后先將n的下一個(gè)節(jié)點(diǎn)賦給a,而n的下一個(gè)節(jié)點(diǎn)a可能是屬性、可能是文本、也可能是元素,還可能是空的,這就需要進(jìn)入循環(huán)進(jìn)行判斷找出下一個(gè)元素節(jié)點(diǎn)。a&&a.nodetype!=1是指,如果a不為空且a的節(jié)點(diǎn)類型不為1時(shí),進(jìn)入循環(huán)(元素節(jié)點(diǎn)的節(jié)點(diǎn)類型才是1),一直往下循環(huán),直至找到一個(gè)元素節(jié)點(diǎn),并將其作為返回值。

這一段基礎(chǔ)內(nèi)容在9-7章,需要好好看一下。

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

慕粉3361053 提問者

有點(diǎn)沒理解上面的話 var x=1;while(x && x.nodeType!=1) 按照我的思路 申明變量x 初始化賦值為1,循環(huán),執(zhí)行條件 ,(x&&x.nodeType!=1) x和x的節(jié)點(diǎn)類型不等價(jià)于1時(shí), 變量x重新初始化賦值為3 ,x=3;。 如上面所說,x.nodeType,是文本節(jié)點(diǎn)類型,type為3,那么 (x && x.nodeType!=1) ,是(1和3不等價(jià)于1)條件不成立,因?yàn)椋?=1)了,是因?yàn)檫@個(gè)問題才出現(xiàn)死循環(huán)嗎?
2016-08-24 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕粉3361053 提問者

a&&a.nodetype!=1是指,如果a不為空且a的節(jié)點(diǎn)類型不為1時(shí),進(jìn)入循環(huán)(元素節(jié)點(diǎn)的節(jié)點(diǎn)類型才是1),一直往下循環(huán),直至找到一個(gè)元素節(jié)點(diǎn),并將其作為返回值。 a.nodetype!=1 我明白, a!=1為什么是不為空, 這個(gè)不為空和!=1有什么關(guān)聯(lián); 還有個(gè)疑問,(n的下一個(gè)節(jié)點(diǎn)a可能是屬性、可能是文本、也可能是元素,還可能是空的,)這句話, n的下一節(jié)點(diǎn)不是元素、就是空節(jié)點(diǎn) 和文本節(jié)點(diǎn),我沒見過屬性的,他是什么樣的。
2016-08-24 回復(fù) 有任何疑惑可以回復(fù)我~
#3

Sergio7 回復(fù) 慕粉3361053 提問者

因?yàn)閚可能是最后一個(gè)節(jié)點(diǎn),后面沒有節(jié)點(diǎn)了,那么通過nextSibling方法就會(huì)返回null。 屬性節(jié)點(diǎn)就像class,href這樣的在標(biāo)簽后面這種,在DOM中也是節(jié)點(diǎn)。另外你好像把a(bǔ)&&a.nodeType!=1的運(yùn)算順序弄錯(cuò)了,是先分別判斷a和a,nodeType!=1的真假,再進(jìn)行&&的真假判斷。
2016-08-28 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
JavaScript進(jìn)階篇
  • 參與學(xué)習(xí)       468768    人
  • 解答問題       22442    個(gè)

本課程從如何插入JS代碼開始,帶您進(jìn)入網(wǎng)頁動(dòng)態(tài)交互世界

進(jìn)入課程

JS關(guān)于函數(shù)的問題,

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

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

幫助反饋 APP下載

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

公眾號(hào)

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