代码改变世界

原生写一个一键获取所有DOM元素的方法

  ET.frog  阅读(1022)  评论(2编辑  收藏  举报

一天挺一个朋友去面试要做一个获取dom元素到数组中

主要用到一个递归算法,通过节点的childNodes属性--代码如下:

function getAllNode() {
	var nodes = document.childNodes;
	var arr_all_ele = [];
	function returnNode(arr_nodes, arr_all_ele) {
		for(var i=0; i<arr_nodes.length; i++) {
			var parentNode = arr_nodes[i];
			arr_all_ele.push(parentNode);
			var childNodes = parentNode.childNodes;
			if(childNodes.length != 0) {
				returnNode(childNodes, arr_all_ele);
			}
		}
	}
	returnNode(document.childNodes, arr_all_ele);
	return arr_all_ele;
}

返回结果是所有dom到一个数组中:

![](https://images2018.cnblogs.com/blog/1244681/201807/1244681-20180726090031658-2049325683.png)
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示