javascript - 关于元素的fistChild到底是元素的属性节点还是文本节点的问题和nodeValue的问题?
高洛峰
高洛峰 2017-04-10 16:53:43
[JavaScript讨论组]

打开页面为什么只弹出一个undefined方框????????元素的fistChild为什么不包括其属性节点??

<!DOCTYPE html >
<html >
<head>
 <meta charset=utf-8 />
 <script type="text/javascript" src="text.js"></script>
</head>
<body>
 <p title="aas">123 wee</p>
 <h3>aaa</h3>
</body>
</html>

下面是对应的JavaScript代码,

alert(document.getElementsByTagName("p").firstChild);
alert(document.getElementsByTagName("p").firstChild.nodeValue);
alert(document.getElementsByTagName("p").lastChild);
alert(document.getElementsByTagName("p").lastChild.nodeValue);
alert(document.getElementsByTagName("p").innerHTML); 
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(4)
大家讲道理

原代码中,运行到第二行就出错了,下面的也没有执行。应该改为:

var p = document.getElementsByTagName("p")[0];
alert(p.firstChild);
alert(p.firstChild.nodeValue);
alert(p.lastChild);
alert(p.lastChild.nodeValue);
alert(p.innerHTML); 

如 @Nana_Morse 所说,注意 document.getElementsByTagName 返回值。

PHPz

document.getElementsByTagName("p")返回的是HTMLCollection对象,你可以把它当作一个数组看待,数组是没有所谓firstChild或lastChild属性的。

黄舟

我认为楼主应该用 console.log 替代 alert

PHP中文网

getElementByTagName返回的是一个节点列表,注意加[0],找到确定的元素,另外还是少使用child,建议用children来代替

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号