最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

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

查找第1個(gè)標(biāo)簽(元素)的previousSibling屬性為何固定為如下代碼?

在JS進(jìn)階教程中有關(guān)prevoiusSibling和nextSibling的章節(jié)有一段程序如下:

<script?type="text/javascript">
????//?查找頁(yè)面中的第1個(gè)<li>標(biāo)簽
????var?firstLi?=?document.getElementsByTagName("li")[0];
????
????//?編寫函數(shù)查找上一個(gè)sibling標(biāo)簽
????function?get_previousSibling(node)?{
????????var?pn?=?node.previousSibling;
????????//?因?yàn)檠h(huán)條件的原因,導(dǎo)致出現(xiàn)了問題
????????//?查找的循環(huán)條件是“如果上一個(gè)sibling類型不是“1”?并且?取值不是null”
????????//?如果將循環(huán)條件調(diào)整為“while?(pn?&&?1!=pn.type?)”則正常
????????while?(1!=pn.type?&&?pn)?{
????????????pn?=?pn.previousSibling;
????????}
????????return?pn;
????}
????
????var?pSibling?=?get_previousSibling(firstLi);
????if?(pSibling)?{
????????document.write("前一個(gè)sibling:"?+?pSibling.innerHTML);
????}?else?{
????????document.write("已經(jīng)是第一個(gè)元素了");
????}
</script>

由運(yùn)行結(jié)果來看,并沒有任何輸出內(nèi)容。倒查JS代碼,發(fā)現(xiàn)問題出在了get_previous()函數(shù)中的while循環(huán)條件上:

while?(1!=pn.type?&&?pn)?{
}

如果調(diào)整為如下形式則能夠獲取輸出:

while?(pn?&&?1!=pn.type)?{
}

我自己分析,問題可能在于第一個(gè)<li>標(biāo)簽之前并沒有sibling。pn為第一個(gè)<li>標(biāo)簽的前一個(gè)sibling,也就是說pn=null。所以循環(huán)條件判斷時(shí)首先判斷pn.type會(huì)引發(fā)問題,而如果首先判斷pn!=null則無礙。

請(qǐng)問各位大俠,我的猜測(cè)是否有誤?請(qǐng)您不吝賜教!

正在回答

2 回答

沒錯(cuò),如果pn不存在,則其為undefined,就不存在type屬性,會(huì)報(bào)錯(cuò)

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

剛才打錯(cuò)了,是null,不是undefined?

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

舉報(bào)

0/150
提交
取消

查找第1個(gè)標(biāo)簽(元素)的previousSibling屬性為何固定為如下代碼?

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

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

幫助反饋 APP下載

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

公眾號(hào)

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