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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取的第一個子節點不是<p>?,為什么是text

獲取的第一個子節點不是<p>?,為什么是text

精慕門8588110 2016-06-08 17:15:30
<body><div id="con">? <p>javascript</p>? <div>jQuery</div>? <h5>PHP</h5></div><script type="text/javascript">var x=document.getElementById("con");? document.write(x.firstChild.nodeName);?document.write(x.lastChild.nodeName);</script></script></body></html>
查看完整描述

5 回答

?
檸檬酸鈉

TA貢獻331條經驗 獲得超534個贊

由于div#con和p之間有空格,在Chrome瀏覽器中空格是一個#text文本節點(大概是這樣吧),如果這段代碼在IE中執行就不會出現這種情況了。為了瀏覽器兼容可以使用這個函數

function?getChildren?(ele)?{
	var?children?=?ele.childNodes;
	var?arr?=?[];
	for?(var?i?=?0;?i?<?children.length;?i++)?{
		if?(children[i].nodeType?==?1)?{
			arr.push(children[i]);
		}
	}
	return?arr;
}

獲取#con下面的第一個p元素

var?p?=?getChildren(document.getElementById('con'))[0];
alert(p);??????//[object?HTMLParagraphElement]


查看完整回答
1 反對 回復 2016-06-08
?
woshi123w

TA貢獻15條經驗 獲得超10個贊

<div id="con"><div>jQuery</div><p>javascript</p><h5>PHP</h5></div>

去掉節點之間的空白

查看完整回答
反對 回復 2016-06-08
?
Cassie_yu

TA貢獻22條經驗 獲得超15個贊

除IE外,其余瀏覽器中?節點之間的空白符是文本節點。

所以,以上代碼中 id=con 的子節點總共有七個,分別為 空白節點、P、空白節點、DIV、空白節點、H5、空白節點。

PS:仔細看 9-8 訪問子節點childNodes中的內容。

查看完整回答
反對 回復 2016-06-08
?
Caballarii

TA貢獻1123條經驗 獲得超629個贊

因為除了IE,其它瀏覽器會把你的換行符(盡管你只是代碼換行了),算成一個文本節點。

查看完整回答
反對 回復 2016-06-08
  • 5 回答
  • 0 關注
  • 2111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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