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

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

為什么第一個節點的nodeValue值JavaScript輸出來了,后面第三個卻是空格呢

http://img1.sycdn.imooc.com//57076c7700015d2a08520409.jpg源碼如下

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
</head>
<body>
<div>
? javascript2 ?
? <p>javascript</p>
? <div>jQuery</div>
? <h5>PHP</h5>
</div>
<script type="text/javascript">
??? var nodeDIV = document.getElementsByTagName("DIV");
? ?
????? var x = nodeDIV[0].childNodes;
???? for(var i=0;i<nodeDIV[0].childNodes.length;i++)
?{
??? document.write("第"+(i+1)+"個節點的值是:"+x[i].nodeValue+"<br? />");
??? document.write("第"+(i+1)+"個節點的名稱是:"+x[i].nodeName+"<br? />");
??? document.write("第"+(i+1)+"個節點的屬性是:"+x[i].nodeType+"<br? />");
??? document.write("<br? />");
?}
</script>
</body>
</html>

正在回答

2 回答

不同瀏覽器(IE,Firefox,chrome等)得出的節點數不一樣,以上代碼IE會輸出3個節點(p,div,h5),其他瀏覽器有七個(將兩個標簽間的空白文檔算作子節點共四個)。1輸出的是第一行的文本文檔值Javascript。所以3、5的value沒有值是因為她們是空白文檔。

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

改成下面的樣子就好了


<!DOCTYPE HTML>

<html>

<head>

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

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

</head>

<body>

<div>javascript2<p>javascript</p><div>jQuery</div><h5>PHP</h5></div>

<script type="text/javascript">

? ? var nodeDIV = document.getElementsByTagName("DIV");

? ?

? ? ? var x = nodeDIV[0].childNodes;

? ? ?for(var i=0;i<nodeDIV[0].childNodes.length;i++)

?{

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

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

? ? document.write("第"+(i+1)+"個節點的屬性是:"+x[i].nodeType+"<br ?/>");

? ? document.write("<br ?/>");

?}

</script>

</body>

</html>


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

請君莫問 提問者

把代碼中間的換行符刪掉對吧。不過這樣代碼不美觀,用while(nodeType!=1)來判斷輸出的話應該可以解決輸出差異化問題。不過還是謝謝
2016-04-12 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么第一個節點的nodeValue值JavaScript輸出來了,后面第三個卻是空格呢

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

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

幫助反饋 APP下載

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

公眾號

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