亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Chrome忽略空白文本節點

實在搞不懂如何通過代碼實現跳過空白文本節點

舉了個簡單的例子,下面代碼如何通過previousSibling拿到【Hello】?這么執行后拿到的是undefined....

<ul>????	
????<li>Hello</li>????	
????<li>World</li>????
</ul>????
<script?type="text/javascript">????	
var?node?=?document.getElementsByTagName("li");????	
document.write(node[1].previousSibling.innerHTML);????
</script>


正在回答

1 回答

1、node[1].previousSibling.innerHTML:這里獲得的是第一個<li></li>后面的空白符(nodeType=3,innerHTML=undefined),也即node[1]的上一個兄弟元素。

2、若想跳過空白文本:

function get_previousSibling(n){

var x=n.previousSibling;//首先取得n的上一個兄弟x

while(x&&x.nodeType!=1){//判斷x是否為元素節點(nodeType=1)

x=x.previousSibling;//若x不是元素節點則繼續循環獲取x的上一個兄弟元素,直到得到的是元素節點即停止循環,即可跳過空白文本節點。

}

return x;//最后返回獲取到的兄弟節點

}

//調用這個函數,即可獲取到上一個相鄰的兄弟元素節點

get_previousSibling(node);//有返回值,要定義一個變量獲取它的返回值并加以判斷即可。


1 回復 有任何疑惑可以回復我~
#1

曉之蛇 提問者

解釋的很清楚,感謝!
2019-11-20 回復 有任何疑惑可以回復我~
#2

旺仔窩窩頭 回復 曉之蛇 提問者

謝謝采納!
2019-11-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

Chrome忽略空白文本節點

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

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號