$.get('http://simbajs.com:89/sys/subjectlist', data => { //获取第一级菜单 let p1 = data.filter(r => r.pid === 0) p1.forEach(r => { // 获取第二级菜单 r.children = data.filter(rr => rr.pid === r.id) //获取第三层级菜单 ;(rr =>{ if(rr.children) { //因为数据中多个菜单是以分号拼接的,所以需要逗号分隔 let items = rr.children.split(',') //每个菜单单项中,是以_|_来拼接的 所以按_|_分割 items = items.map(rrr =>{ let kv = rrr.split('_|_') //第一个是id 第二个是名称 return { id: kv[0], name: kv[1] } }) rr.children = items } }) })
利用数据的高阶方法将数据从端口拿的数据进行处理,其中p1.forEach下面的语句是在一级菜单下的子元素 在此语句下执行才可以将子级的数据放到哪里 ;r.children.forEach这里是对拿到的子级的元素进行处理,增删改查等以及添加样式标签等。