parentNode和parentElement的区别

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head> 
	<body>
		<div id="bb">
			<div class="box1"></div>
			<div class="box">
				<p title="hhhh">第1</p>
				<p dataId="2">第2</p>
				<p>第3</p>
				<p>第4</p>
			</div>
			<div class="box2"></div>
		</div>
<script type="text/javascript">  var pp = document.getElementsByClassName("box")[0]; 
</script>
 </body>
</html>


1 用法

console.log(pp.parentNode);
console.log(pp.parentElement); 
// parentNode:获取父节点
// parentElement:获取父元素

在这里插入图片描述

2 共同点

console.log(pp.parentNode.nodeName); // DIV
console.log(pp.parentElement.nodeName); //DIV
//parentNode和parentElement都可以获取父节点的所有节点属性,可以配合nodeName获取节点名字

3 唯一区别

console.log(pp.parentElement.parentElement.parentElement.parentElement.nodeName); //报错:000.html:37 Uncaught TypeError: Cannot read property 'nodeName' of null

console.log(pp.parentNode.parentNode.parentNode.parentNode.nodeName);// #document

在获取根部document节点是,parentElement找的是元素,因此报错null,而parentNode获取的是节点,返回的是#document

4 childNodes和children的区别

console.log(pp.childNodes);
console.log(pp.children);


childNodes:获取子节点——返回所有节点的数组,只返回文本和元素节点,对于属性节点直接无视
children:子元素——只返回元素节点

childNodes打印结果
在这里插入图片描述
children打印结果
在这里插入图片描述
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。
转载请注明来源: js中parentNode和parentElement的区别和用法 - Qui-Note

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值