石榴笑了
2018-08-17 16:13
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>
<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+x.firstChild.nodeValue+x.firstChild.nodeType+"<br>");
document.write("最后一个子节点:"+x.lastChild.nodeName+x.lastChild.nodeValue+x.lastChild.nodeType+"<br>");
</script>
</body>
</html>
为什么我的x.d=firstChild.nodeValue没有内容输出?
在子节点中两个标签之间的空格或换行都被解析为一个子节点(文本节点),
<div id="con">到 <p>之间的空格或换行都被解析为一个子节点(文本节点),
所以第一个子节点是文本节点,
第二个子节点是<p></p>,
第三个子节点是</p>到<div>之间的空格或换行。
以此类推
在上节课节点属性中讲到: 文本节点的 nodeValue 是文本自身。
如果想看到效果,可以在<div id="con">到 <p>之间随便写点文本内容。
或者
<div id="con">到 <p>之间的空格和换行都去掉,什么都不写。
妙啊!
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题