为了账号安全,请及时绑定邮箱和手机立即绑定

访问子结点没懂,大神帮看看,分析一下步骤。

<!DOCTYPE HTML>
<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 x=document.getElementsByTagName("div")[0].childNodes;
for(var i=0;i<x.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>

正在回答

3 回答

楼主:

属性childNodes存在兼容性问题,在不同的浏览器中结果不同。

firefox、chrome、opera、safari浏览器中节点之间的空白符默认为一个节点,而IE不会由此默认。

所以,你在不同的浏览器中可以看下结果。

这个程序是要看在整个html文档流中,第一个div块((“div”)[0])里面的所有节点的值、名称、属性。

节点类型的值:是规定好的:元素  1; 属性   2; 文本 3; 注释  8; 文档   9。

名称:1. 元素节点的 nodeName 与标签名相同2. 属性节点的 nodeName 是属性的名称3. 文本节点的 nodeName 永远是 #text4. 文档节点的 nodeName 永远是 #document

属性:1. 元素节点的 nodeValue 是 undefined 或 null2. 文本节点的 nodeValue 是文本自身3. 属性节点的 nodeValue 是属性的值

其中:javascript是文本,<p>、<div>、<h5>都是元素,所以结果都是null。如果你在非IE浏览器中运行,空白也是文本,文本内容为空,所以结果是空

3 回复 有任何疑惑可以回复我~

在语言表示中第几个是从1开始,而在代码数组中是从0开始,i+1是为了在显示时方便阅读

1 回复 有任何疑惑可以回复我~

为何要i+1

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

快乐购

因为数组从0开始,加一就从一开始
2016-08-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

访问子结点没懂,大神帮看看,分析一下步骤。

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号