代码改变世界

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

2018-07-26 09:01  ET.frog  阅读(1017)  评论(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)