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

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

請問各位大神:為什么下面這段代碼中的第一個<div>會有7個子節點呢?不應該是“文本:javascript”、“元素p”、“元素div”、“元素h5”這4個子節點嗎?

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>無標題文檔</title>

</head>

<body>

<div>

? javascript ?

? <p>javascript</p>

? <div>jQuery</div>

? <h5>PHP</h5>

</div>

<script type="text/javascript">

var node=document.getElementsByTagName("div")[0].childNodes;

var huoqu=document.getElementsByTagName("div")[0].childNodes;

?for (var i=0;i<huoqu.length;i++)

? ? ?{document.write("第"+(i+1)+"個子節點的名稱:"+huoqu[i].nodeName+"<br/>");

? ? ? document.write("第"+(i+1)+"個子節點的值:"+huoqu[i].nodeValue+"<br/>");

? ? ? document.write("第"+(i+1)+"個子節點的類型:"+huoqu[i].nodeType+"<br/><br/><br/>");

? ? ?}

</script>

</body>

</html>



正在回答

3 回答

看你用的什么瀏覽器。childNode 在 ie 和 firefox 中有著不同的處理方式,ie 只會把 html 標簽算作孩子結點,而 firefox 除了把 html 標簽算作孩子結點外,還會把“文字、空格、換行符和制表”算作孩子結點,三個元素標簽,加四個換行,剛好七個

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

子玲兒 提問者

非常感謝哈!
2017-04-04 回復 有任何疑惑可以回復我~
#2

Daniel大牛D 回復 子玲兒 提問者

抱歉 我不同意上面最佳回答的觀點。 并不是4個換行+3個元素=7個。實際是3個換行+1個文本標簽+3個元素標簽。因為換行,空格等在非IE瀏覽器下,都會認為是空文本標簽。那么在已經有一個非空文本標簽存在的情況下,不管是在這個空文本標簽的前面還是后面有任何空標簽,都會被忽略。請參考后面代碼進行驗證。
2017-06-25 回復 有任何疑惑可以回復我~
0 回復 有任何疑惑可以回復我~

<div


? javascript?

? <p>javascript</p>

? <div>jQuery</div>

? <h5>PHP</h5>

</div>

<script type="text/javascript">

?var node = document.getElementsByTagName("div")[0].childNodes;

?document.write("Number of nodes:"+ node.length + "<br/>")

?for(var i = 0; i < node.length; i++){

? ? ?document.write("Node type:"+ node[i].nodeType + "<br/>")

? ? ?document.write("Node type:"+ node[i].nodeValue + "<br/>")

?}


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

Daniel大牛D

抱歉筆誤,最后一行的“Node type” 應該改成“Node value”
2017-06-25 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

請問各位大神:為什么下面這段代碼中的第一個<div>會有7個子節點呢?不應該是“文本:javascript”、“元素p”、“元素div”、“元素h5”這4個子節點嗎?

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

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

幫助反饋 APP下載

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

公眾號

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