解析json資料生成樹形導航選單
分享一段程式碼例項,它實現瞭解析json資料生成樹形導航選單的功能。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> .menuTree { margin-left: 5px; border-left: 1px dotted deepskyblue; } .menuTree div { padding-left: 15px; margin-bottom: 2px; } .menuTree strong { border: 1px solid #aad3f2; background: deepskyblue; color: ghostwhite; border-radius: 6px; color: 16px)); } .menuTree div ul { overflow: hidden; display: none; height: auto; border-left: 1px dotted deepskyblue; padding-left: 0; margin: 6px 0 6px 8px; } .menuTree span { display: block; height: 25px; line-height: 25px; padding-left: 5px; margin: 1px 0; cursor: pointer; /*border-bottom:1px solid #CCC;*/ position: relative; } .menuTree span:hover { background-color: #e6e6e6; color: deepskyblue; } .menuTree a { color: #666; text-decoration: none !important; } .menuTree a:hover { color: #06F; } .menuTree span:before { content: " "; display: block; width: 20px; height: 0px; position: absolute; top: 50%; left: -15px; border-bottom: 1px dotted deepskyblue; } .menuTree ul span:before { content: " "; display: block; width: 70px; height: 0px; position: absolute; top: 50%; left: -70px; border-bottom: 1px dotted deepskyblue; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> </head> <body> <div id="menuTree" class="menuTree"></div> <script type="text/javascript"> var json = [{ "name": "選單欄效果", "list": [{ "name": "-選單欄效果", "url": "#a1" }, { "name": "-選單欄效果a", "list": [{ "name": "--選單欄效果", "url": "#a11" }, { "name": "--選單欄效果a", "list": [{ "name": "---選單欄效果", "url": "#a111" }, { "name": "---選單欄效果a", "list": [{ "name": "----選單欄效果", "url": "#a1111" }, { "name": "----選單欄效果a", "url": "#a1112" }] }] }, { "name": "--選單欄效果aa", "url": "#a13" }, { "name": "--選單欄效果aaa", "url": "#a14" }] }, { "name": "-選單欄效果", "url": "#a3" }] }, { "name": "-b", "list": [{ "name": "--b", "url": "#b1" }, { "name": "--bb", "list": [{ "name": "----b", "url": "#b111" }, { "name": "----bb", "url": "#b112" }] }, ] }, { "name": "-c", "list": [{ "name": "--c", "url": "#c1" }, { "name": "--cc", "url": "#c2" }] }, { "name": "-d" }] /*遞迴實現獲取無級樹資料並生成DOM結構*/ var str = ""; var forTree = function(o) { for (var i = 0; i < o.length; i++) { var urlstr = ""; try { if (typeof o[i]["url"] == "undefined") { urlstr = "<div><span>" + o[i]["name"] + "</span><ul>"; } else { urlstr = "<div><span><a href=" + o[i]["url"] + ">" + o[i]["name"] + "</a></span><ul>"; } str += urlstr; if (o[i]["list"] != null) { forTree(o[i]["list"]); } str += "</ul></div>"; } catch (e) {} } return str; } /*新增無級樹*/ document.getElementById("menuTree").innerHTML = forTree(json); /*樹形選單*/ var menuTree = function() { //給有子物件的元素加[+-] $("#menuTree ul").each(function(index, element) { var ulContent = $(element).html(); var spanContent = $(element).siblings("span").html(); if (ulContent) { $(element).siblings("span").html("<strong>[+]</strong> " + spanContent) } }); $("#menuTree").find("div span").click(function() { var ul = $(this).siblings("ul"); var spanStr = $(this).html(); var spanContent = spanStr.substr(20, spanStr.length); if (ul.find("div").html() != null) { if (ul.css("display") == "none") { ul.show(300); $(this).html("<strong>[-]</strong>" + spanContent); } else { ul.hide(300); $(this).html("<strong>[+]</strong> " + spanContent); } } }) }() </script> </body> </html>
相關文章
- 點選平滑下拉展開摺疊樹形導航選單
- Antd:Tree樹形控制元件資料解析(JSON轉換)控制元件JSON
- PbootCMS導航選單-導航選單的使用教程boot
- tpextbuilder- 左側樹形導航UI
- 樹開下拉選單資料來源生成
- java從資料庫讀取選單,遞迴生成選單樹Java資料庫遞迴
- 利用transform skewX製作平行四邊形導航選單ORM
- 採用JavaScript+XML實現具有樹形選單功能的論壇側邊導航欄JavaScriptXML
- CSS垂直導航選單CSS
- CSS導航條選單:帶小三角形CSS
- JavaScript二級導航選單JavaScript
- CSS 動態導航選單CSS
- 導航選單(動畫)--- jQuery動畫jQuery
- JavaScript 三級導航選單JavaScript
- CSS導航欄及下拉選單CSS
- CSS多級導航選單效果CSS
- CSS垂直三級導航選單CSS
- Element-ui之導航選單UI
- JavaScript slide下拉導航選單效果JavaScriptIDE
- 如何快速、且易懂編寫Java遞迴生成樹形選單結構Java遞迴
- 將物件解析為JSON資料和將JSON資料解析為物件的簡單例項物件JSON單例
- jQuery三級導航選單詳解jQuery
- 純css製作導航下拉選單CSS
- (四)選單導航及路由設定路由
- 固定在頂部的導航選單
- vue元件之路之menu導航選單Vue元件
- 使用 marked 解析 Markdown 並生成目錄導航 TOC 功能
- C# 簡單反射實現winform左側樹形導航,右側切換內容C#反射ORM
- 解析大資料json大資料JSON
- WPF實現樹形下拉選單框(TreeComboBox)
- jQuery 淡入淡出效果下拉導航選單jQuery
- CSS三級下拉導航選單詳解CSS
- JavaScript橫向二級導航選單效果JavaScript
- CSS3麵包屑導航選單CSSS3
- JavaScript可摺疊屬性導航選單JavaScript
- JavaScript下拉摺疊導航選單講解JavaScript
- 純CSS打造淘寶導航選單欄CSS
- CSS3垂直摺疊導航選單CSSS3
- CSS水平導航選單製作詳解CSS