angular.js - 通过数据中children的个数自动生成能点击展开的div
问题描述
数据如图:
根据获取的这些数据要做出这样的效果:
最外面的父级一直都显示,点击后显示它的子级,如果子级还有子级,点击后又可以展开...
问题解答
回答1:<!DOCTYPE html> <html> <head><meta charset='utf-8' /><style type='text/css'> .list {margin: 0;padding-left: 20px; }.list li {list-style: none; }.hide {display: none; }.control ~ .control-label {display: inline-block;width: 0;height: 0;border: 6px solid transparent;border-left-color: #000; }.control:checked ~ .control-label {border-left-color: transparent;border-top-color: #000; }.control ~ .list {display: none; }.control:checked ~ .list {display: block; }.control-label::after {content: attr(data-title);display: block;margin-top: -6px;margin-left: 0.5em;width: 10em;font-size: 12px;line-height: 12px; }</style> <head> <body><script> function createItem(data) {var id = (Math.random()).toString(16).slice(2); var p = document.createElement(’p’); p.className = ’content’;var input = document.createElement(’input’);input.type = ’checkbox’; input.className = ’hide control’; input.id = ’control-’ + id; var label = document.createElement(’label’); label.className = ’control-label’; label.setAttribute(’for’,’control-’ + id); label.dataset.title = ’[’ + data.Code + ’]’ + data.Name;p.appendChild(input);p.appendChild(label); return p; } function createTree(data) {var ul = document.createElement(’ul’); ul.className = ’list’; for(var i = 0,len = data.length; i < len; i++) { var li = document.createElement(’li’); var p = createItem(data[i]); li.appendChild(p); if(data[i].children && data[i].children.length > 0) {p.appendChild(createTree(data[i].children)); } ul.appendChild(li);} return ul; } var elems = createTree(data); document.body.appendChild(elems);</script> </body></html>
相关文章:
1. 老师,flex-shrink: 1; 按视频操作,不会自动缩放2. docker images显示的镜像过多,狗眼被亮瞎了,怎么办?3. docker api 开发的端口怎么获取?4. docker镜像push报错5. 如何解决docker宿主机无法访问容器中的服务?6. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?7. python - 怎样在linux下开发flask web应用时查看代码出错(traceback)的地方。8. 前端 - 类到底该如何去命名 .newsList 这种的命名难道真的不是过度语义化吗?~9. 如何设置一个无限循环并打破它。(Java线程)10. mysql - phpMyAdmin无法导入数据

网公网安备