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

DOM中有三种不同的节点,他们每个都对应一种不同的元素获取方法,为什么第三种输出结果是空白呢?

DOM中有三种不同的节点,他们每个都对应一种不同的元素获取方法,为什么第三种输出结果是空白呢?

第一个是获取ID值为con的元素

第二个是获取ID值为con的元素在页面中的HTML代码

第三个是获取ID值为con的元素的最后一个子元素的值


正在回答

3 回答

这是 因为 浏览器解析DOM节点时,把回车符 也作为了一个节点,你可以使用chrome浏览器,在控制台输入下面命令查看 程序到底是如何执行的。你会看到id = con 的元素 子节点一共有三个 ,最有一个 就是 #text,所以你得到的空值

http://img1.sycdn.imooc.com//5514c73a00019e3904990233.jpg

另外一个 关于属性 nodeValue 如果对于元素节点 值是 undefined或null, 对于文本节点 值是 文本本身

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

为理想我拼了 提问者

谢谢,只是不明白,为什么会有回车符存在呢。是因为有了P标签的原因还是说本身就存在回车符。
2015-03-27 回复 有任何疑惑可以回复我~

换行符 在文档内是看不到的  这个是控制字符,你通过txt 编写 切换到下一行 不需要按一下回车吗? 回车就会产生换行符

你用下载一个 notepad++ 打开你网页文件,在视图里面选择 “显示所有符号”结果就如下图所示:

CRLF -- Carriage-Return Line-Feed 回车换行

http://img1.sycdn.imooc.com//5514f4610001f1ab07180384.jpg

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

为理想我拼了 提问者

哦明白了,原来是这样。解释的很清楚
2015-03-27 回复 有任何疑惑可以回复我~
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>document.getElementById</title>
</head>
<body>
<div id="con">JavaScript
    <p>子元素段落</p>
</div>
<script type="text/javascript">
  var mychar=document.getElementById("con").lastChild.nodeValue;
  document.write("结果:"+mychar); //输出获取的P标签。 
</script>
</body>
</html>


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

举报

0/150
提交
取消

DOM中有三种不同的节点,他们每个都对应一种不同的元素获取方法,为什么第三种输出结果是空白呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信