在整个body中找到所有的注释(通过JS来操作节点寻找)

天边星辰 2016-04-20 10:09:02
新人第一次发问题帖,请前辈们多多关照
我想通过JS操作DOM节点来找到整个body里面的所有注释
类似下面这种操作:

var bodyElement = document.getElementsByTagName("body")[0];
for (var i=0; i<bodyElement.childNodes.length; i++) {
if (bodyElement.childNodes[i].nodeType == 8) {
alert(bodyElement.childNodes[i].nodeValue);
}
}

但是这个只能找到body的子节点是注释的情况,
当然,就这样一直循环下去也可以找到body子节点的子节点是注释的情况,但是如果在很深的DOM节点里,用这种循环的方式就很不好书写。
所以我想到用递归来写
但是,关键来了!
我才初学这个,递归的思想我也只懂一点,所以完全写不出来啊,所以来问问,希望有朋友可以解答下,感激不尽
还有,如果有什么更简单的方法可以提出来,可能我没有学到,但是我更想看看这个递归的写法
下面是html文档。


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div>
<div>
<div>
<!-- note1 -->
</div>
</div>
<div>
<div></div>
</div>
</div>
<div>
<div>
<p>
<!-- note2 -->
<p>
</div>
<div>
<div></div>
</div>
</div>
<!-- note3 -->
<div>
<div>
<div></div>
</div>
<!-- note4 -->
<div>
<div></div>
</div>
</div>
</body>
</html>
...全文
470 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2016-04-20
  • 打赏
  • 举报
回复

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div>
		<div>
			<div>
				<!-- note1 -->
			</div>
		</div>
		<div>
			<div></div>
		</div>
	</div>
	<div>
		<div>
			<p>
				<!-- note2 -->
			<p>
		</div>
		<div>
			<div></div>
		</div>
	</div>
	<!-- note3 -->
	<div>
		<div>
			<div></div>
		</div>
		<!-- note4 -->
		<div>
			<div></div>
		</div>
	</div>
<script type="text/javascript">
function eachComment(ele) {
	for (var i=0; i<ele.childNodes.length; i++) {
		var child = ele.childNodes[i];
		if (child.nodeType == 8) {
			alert(child.nodeValue);
		} else if (child.childNodes) {
			eachComment(child);
		}
	}
}
var bodyElement = document.getElementsByTagName("body")[0];
eachComment(bodyElement);
</script>
</body>
</html>

87,917

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧