首页 > 关于元素的fistChild到底是元素的属性节点还是文本节点的问题和nodeValue的问题?

关于元素的fistChild到底是元素的属性节点还是文本节点的问题和nodeValue的问题?

打开页面为什么只弹出一个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); 

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


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


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

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 返回值。


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

【热门文章】
【热门文章】