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

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

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

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

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

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

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

如果調整為如下形式則能夠獲取輸出:

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

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

請問各位大俠,我的猜測是否有誤?請您不吝賜教!

正在回答

2 回答

沒錯,如果pn不存在,則其為undefined,就不存在type屬性,會報錯

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

剛才打錯了,是null,不是undefined?

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

舉報

0/150
提交
取消

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

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

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

幫助反饋 APP下載

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

公眾號

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