计算机服务器

小提示: 关于数组的concat和push方法。 两者的区别主要有: concat是连接数组,不会修改原数组,返回值为连接后的数组,与push的重要区别是concat会展开数组的第一层子数组 push是添加数组元素。就地修改原数组,返回值为添加的新项,push不会展开传入的数组。 复制代码 代码如下: var a = [1,2,3,4]; var b = [4,5,6,7]; var c = a.push; var d = a.concat; console.log; console.log; console.log; console.log; //输出: a [1,2,3,4,[4,5,6,7]]//没有展开 b [4,5,6,7] c 5//push返回新添加的项 d [1,2,3,4,[4,5,6,7],4,5,6,7]//push未展开,concat展开 首先遍历DOM树,然后构建,结果保存形为 复制代码 代码如下: { key_1:[{key_1_1:value_1},{key_1_1:value_1},{key_2_1:value_2}], key_2:[], key_3:[], key_4:[], } 的结构 本来想用json格式的,可是要么有重复,要么得嵌套,所以改用对象嵌套数组。 获取了结构之后,节点树基本也就确定了,直接构造成树形菜单就可以了。 当然,还是构成简单的树形菜单,见 //www.jb51.net/article/29100.htm遍历和构建的函数如下: 复制代码 代码如下: //遍历节点 function walkDom{ var c = el.firstChild; var retObj = {}; var array = []; while{//这里只是返回了元素节点,没有节点就是个空数组 if{ array.push; } c = c.nextSibling; } retObj[el.tagName] = array; return retObj; } //构建树形 function createTree{ var array = []; for{ array.push; array.push; array.push; if(tree[key].length != 0){ array.push; for(var i = 0; i < tree[key].length; i++){ array = array.concat(createTree; } array.push; } array.push; } return array; } 下面是一个demo: 复制代码 代码如下:

头部

第一部分

脚部

结果如下:

其他新闻
  • 如何实现多次点击下拉菜单的值切换返回下拉按钮,现在只能返回第一次点击的值,之后点击就不能切换了按钮的值了divdivdivdivdivbuttontype="button"data-toggle="dropdown"aria-haspopup="true"aria-exp...
    2019-12-27
  • ##JS第一天####JaveScrip历史作者:BrendanEich版权归:Oracle所有最早诞生于1996年#####浏览器组成主要由两部分组成1,shell2,内核)#####chrome浏览器2008年Google发布最新浏览器,采用javeScript引擎...
    2019-12-27
  • 用vscode编辑器写js时,装上插件会有js函数方法全名提示回车后这个方法名字被补全但是并没有自动添加括号,别的编辑器都可以,期间我安照网上说的在setting.json里添加了typescript.......
    2019-12-27
友情链接

公司名称巴黎人电玩
版权所有:Copyright © 2015-2019 http://www.zhongqiangjy.com. 巴黎人电玩有限公司 版权所有

友情链接

Copyright © 2015-2019 http://www.zhongqiangjy.com. 巴黎人电玩有限公司 版权所有
公司地址http://www.zhongqiangjy.com