首先要求后端传来的菜单数据必须包含:

id---菜单id
pid---父菜单id

整体思想:首先渲染出整个菜单(不包含父子关系),再用js将各标签分组、挂载到父结点上。

这里给各个菜单增加自定义属性pid,如下(jsp代码):

<ul class="navbar" style="width: 100%"><c:forEach var="menu" items="${menus}"><li id="${menu.menuId}" data-pid="${menu.pId}"><a href="${menu.url}" target="center" onclick="showMenu(this);return false;">${menu.menuName}<img src="./img/open.png" alt=""></a></li></c:forEach></ul>

其中,data-pid(data-xxx-xxx格式)为目前使用较多的自定义属性定义方式

在js中的代码为:

//html加载完毕后执行
window.onload = function () {var list = document.getElementsByTagName("li");for (var i = 0; i < list.length; i++) {if (list[i].dataset.pid === "") {//这里是顶级菜单} else if (list[i].dataset.pid !== "") {//这里是子结点//取出pidvar pid = list[i].dataset.pid;var pele = document.getElementById(pid);//寻找父菜单if (document.getElementById("u" + pid) == null) {//不存在则创建var ul = document.createElement("ul");ul.setAttribute("id", "u" + pid);ul.appendChild(list[i]);pele.appendChild(ul);} else {//存在则添加var ul = document.getElementById("u" + pid);ul.appendChild(list[i]);}}}}

使用无序列表ul实现多级菜单相关推荐

  1. 有序列表ol与无序列表ul用法

    有序列表<ol>与无序列表ul用法 其中<li> 标签定义列表项目,<li> 标签可用在有序列表 (<ol>) 和无序列表 (<ul>) 中 ...

  2. html生成无序列表,CSS无序列表创建的标准菜单效果代码

    本文实例讲述了CSS无序列表创建的标准菜单效果代码.分享给大家供大家参考.具体如下: 这是一款用LI无序列表创建的标准CSS菜单,这是国外一个网站的CSS制作教程,这里重新整理了一下,去除了广告代码, ...

  3. web无序列表去掉点_无序列表ul标记的type属性值可以为-智慧树Web前端开发技术(山东联盟)章节答案...

    Web前端开发技术(山东联盟):无序列表ul标记的type属性值可以为[多选题] A:square B:circle C:disc D:line Web前端开发技术(山东联盟)章节测试答案: squa ...

  4. html列表黑色圆点是有序还是,网页HTML有序列表ol和无序列表ul

    html语言中有序列表和无序列表有什么区别? 第一,有序列表的标签是 ,有start属性 ,最大序号为999 无序列表的标签是,无start属性 第二,的显示方式是列表前面有序号(序号形式由type属 ...

  5. html怎样让列表向下移动,Html无序列表ul控件实现行上下移动.

    new document // 创建一个ul var ul = document.createElement("ul"); ul.id = "oList"; / ...

  6. phpul 无序列表,PHP – 简单嵌套无序列表(UL)数组

    我在stackoverflow上看到了这个嵌套的UL数组问题的一些变体,但我认为我的比其他更简单.我正在寻找一个简单的数组循环,允许无限量的主题(父母)与无限量的项目(儿童),如: Topic Ite ...

  7. 使用HTML5 nav标签和无序列表ul标签实现导航栏

    <!doctype html> <html> <dead> <meta charset="UTF-8"> <style typ ...

  8. HTML的无序(ul)、有序(ol)、定义(dl)列表标签

    *列表标签 列表类型 标记符号 备注 无序列表 <ul>-</ul> 常用 菜单列表 <menu>-</menu> 不常用 目录列表 <dir&g ...

  9. 无序列表如何做一个导航条?html,如何使用无序列表制作导航菜单.docx

    第一步:建立一个无序列表 我们先建立一个无序列表,来建立菜单的结构.代码是: 首页 产品介绍 服务介绍 技术支持 立刻购买 联系我们 第二步:隐藏li的默认样式 因为看起来不是很好看,菜单通常都不需要 ...

  10. html生成无序列表,HTML的ul无序列表

    无序列表 ul{width:250px;height:150px;background-color:gray;border:1px solid white;border-radius:10px;} u ...

最新文章

  1. 从大厂“出逃”,今天又有三位程序员联手敲钟:市值 40 亿
  2. 爱鲜蜂签约神策数据 让精细化运营落地企业
  3. Opencv3编程入门学习笔记(三)之访问图像像素的三种方法
  4. Hibernate READ_ONLY CacheConcurrencyStrategy如何工作
  5. 使用WEUI uploader上传图片
  6. 全国第一条5G步行街开街;罗永浩回应直播有多赚钱:没那么夸张;Windows Terminal 1.4发布|极客头条
  7. 强命名防止dll被篡改
  8. 学习记录1——vissim4.3安装和vissim4.3时间修改工具使用
  9. 分享180个动态模板PPT模板,总有一款适合你
  10. 用C#.NET编写软件注册机
  11. CNNIC:第35次中国互联网络发展状况统计报告
  12. 光伏发电与计算机控制,独立太阳能光伏发电系统的控制设计与实现
  13. 计算机配件价格上涨,显卡涨价风声再起 PC配件涨价什么时候是个头
  14. linux转置的命令,转置文件(awk)
  15. ipv6 无状态地址管理
  16. 计算机与师范数学的联系论文,数学师范生毕业论文
  17. Java - JIT即时编译器
  18. java多态的多种表现形式
  19. ***没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
  20. JVM内存配置参数、GC工作原理及Minor GC、FullGC

热门文章

  1. 第四章:Django特级篇
  2. 编程 100个训练题目
  3. 极化的概念及天线极化方式
  4. 问道娃娃进阶技能学习方法及技能效果图文介绍
  5. 认知升级三部曲读后感想
  6. 【转】linux电源框架——Regulator
  7. 关于CNN中感受野的理解和计算方法
  8. 想成为“王者”的必备能力——领导力21法则
  9. vulcan 编程_Vulcan和AUSK之间的比较:如何充分利用Node,React和GraphQL
  10. 天威dns服务器无响应,天威DNS服务器地址设置