JavaScript json無限分級導航菜單:
```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<title>JavaScript json無限分級導航菜單</title>
<style type="text/css">
#menujson div ul { overflow:hidden; display:none; height:auto; margin:0;}
</style>
</head>
<body>
<p id="menujson"></p>
</body>
</html>
<script type="text/javascript">
var json = {"header":["","id","english","chinese","english_description","chinese_description","english_link","chinese_link","parent","sort","create_time","update_time"],"data":[["","{\"3\":{\"id\":\"3\",\"parent\":\"0\",\"english\":\"Australia\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\",\"child\":{\"9\":{\"id\":\"9\",\"parent\":\"3\",\"english\":\"New South Wales\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\",\"child\":{\"24\":{\"id\":\"24\",\"parent\":\"9\",\"english\":\"Sydney\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"},\"25\":{\"id\":\"25\",\"parent\":\"9\",\"english\":\"Newcastle\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"}}},\"10\":{\"id\":\"10\",\"parent\":\"3\",\"english\":\"Queensland\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\",\"child\":{\"26\":{\"id\":\"26\",\"parent\":\"10\",\"english\":\"City of Brisbane\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\",\"child\":{\"27\":{\"id\":\"27\",\"parent\":\"26\",\"english\":\"Gold Coast\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"}}}}}}},\"1\":{\"child\":{\"2\":{\"id\":\"2\",\"parent\":\"1\",\"english\":\"Canada\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\",\"child\":{\"7\":{\"id\":\"7\",\"parent\":\"2\",\"english\":\"Ontario\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\",\"child\":{\"20\":{\"id\":\"20\",\"parent\":\"7\",\"english\":\"Toronto\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"},\"21\":{\"id\":\"21\",\"parent\":\"7\",\"english\":\"Ottawa\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"}}}}},\"4\":{\"id\":\"4\",\"parent\":\"1\",\"english\":\"New York\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\",\"child\":{\"11\":{\"id\":\"11\",\"parent\":\"4\",\"english\":\"New York city\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\",\"child\":{\"12\":{\"id\":\"12\",\"parent\":\"11\",\"english\":\"Buffalo\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\",\"child\":{\"13\":{\"child\":{\"5\":{\"id\":\"5\",\"parent\":\"13\",\"english\":\"Alabama\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\",\"child\":{\"14\":{\"id\":\"14\",\"parent\":\"5\",\"english\":\"Birmingham\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"},\"16\":{\"id\":\"16\",\"parent\":\"5\",\"english\":\"Huntsville\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"}}}},\"id\":\"13\",\"parent\":\"12\",\"english\":\"Albany\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"}}}}}}},\"6\":{\"id\":\"6\",\"parent\":\"1\",\"english\":\"California\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\",\"child\":{\"17\":{\"id\":\"17\",\"parent\":\"6\",\"english\":\"Los Angeles\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"},\"18\":{\"id\":\"18\",\"parent\":\"6\",\"english\":\"San Francisco\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"},\"19\":{\"id\":\"19\",\"parent\":\"6\",\"english\":\"San Diego\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"}}},\"8\":{\"id\":\"8\",\"parent\":\"1\",\"english\":\"British Columbia\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\",\"child\":{\"15\":{\"id\":\"15\",\"parent\":\"8\",\"english\":\"Montgomery\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"},\"22\":{\"id\":\"22\",\"parent\":\"8\",\"english\":\"Vancouver\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"},\"23\":{\"id\":\"23\",\"parent\":\"8\",\"english\":\"Victoria\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"}}}},\"id\":\"1\",\"parent\":\"0\",\"english\":\"USA\",\"english_link\":\"https:\\/\\/www.baidu.com\\/\"}}"]]}
var str = String(json['data']);
str = str.substr(1);
jsonArr = JSON.parse(str);
console.log(jsonArr);
var str = "";
function menuArr(jsonArr)
{
var obj = jsonArr;
for(var key in obj)
{
var urlstr = "";
try{
if(typeof obj[key]["child"] == "undefined"){
urlstr = '<div><span><a href="'+obj[key]['english_link']+'" target="_blank">'+obj[key]['english']+'</a></span><ul>';
}else{
urlstr = "<div><span> + "+obj[key]['english']+"</span><ul>";
}
str += urlstr;
if(obj[key]["child"] != null)
{
menuArr(obj[key]["child"]);
// console.log('child');
}
str += "</ul></div>";
}catch(e){}
}
return str;
}
document.getElementById("menujson").innerHTML = menuArr(jsonArr);
var menujson = function(){
$("#menujson").find("div span").click(function(){
var ul = $(this).siblings("ul");
var spanStr = $(this).html();
var spanContent = spanStr.substr(3,spanStr.length);
if(ul.find("div").html() != null){
if(ul.css("display") == "none"){
ul.show(300);
// $(this).html("[-]" + spanContent);
}else{
ul.hide(300);
// $(this).html("[+] " + spanContent);
}
}
})
}()
</script>
```
- 前端開發概要
- Vue
- Vue.js
- Vue的模板
- Vue的屬性綁定和雙向數據綁定
- Vue的計算屬性和偵聽器
- v-show和v-if
- Vue簡單to do list
- Vue簡單to do list組件拆分
- Vue簡單to do list組件和實例
- Vue簡單to do list的刪除功能
- Vue的點擊事件,側重操作數據
- vue中定時器設置和關閉頁面時關閉定時器
- axios
- Vue Element-ui
- HTML轉Vue
- Vue3
- Vue開發簡易權限認證
- demo
- Vue常用命令
- Vue項目1
- 前端面試
- 算法題
- Vue框架原理
- 前端基礎
- 安全
- 模擬面試一面
- JavaScript和MySQL
- JavaScript和Redis
- HTML+CSS入門到案例
- 無限級導航欄案例開發
- iframe嵌套網頁全屏顯示
- CSS定位顯示圖片不同部分
- Select option 跳轉
- 網頁顯示JavaScript
- 簡單文本編輯器
- 用純js實現一個文本編輯器
- 視頻,音頻
- frame包住目標網站
- Web重定向
- HCJ
- HTML
- CSS
- jQuery
- Bootstrap
- CSS實例
- 【CSS3】8款好看的純CSS3搜索框
- 小工具
- menu_icon
- JavaScript
- JS獲取屏幕尺寸
- JavaScript簡易錄播圖
- 預設select option的值
- HTML和CSS基礎
- APP開發
- uni-app
- nw.js
- CSS基礎
- CSS hover 菜單
- CSS Menu
- CSS Menu 2
- Bootsrtap
- 圖片展示
- 固定topbar
- JavaScript
- 當前頁select option value跳轉頁面
- JavaScript點擊一級菜單打開和關閉二級菜單
- JavaScript json無限分級導航菜單
- JavaScript獲取url
- 其他
- JS獲取復選框中當前選中的值
- JS array 遍歷
- JavaScript無刷新修改url
- localStorage
- js版的in_array的實現方法
- JavaScript修改URL參數
- JSON
- jQuery教程
- 用PHP+MySQL+jQuery+Ajax拖放排序修改數據庫
- jQuery實例
- jQuery
- jQuery實例1
- jQuery slider實例
- jQuery加載更多功能
- jQuery前后元素移動
- datatables前端搜索功能
- jQuery select value跳轉頁面
- jQuery局部刷新
- jQuery點擊自身以外關閉彈出窗
- 點擊增加class
- 點擊增加和刪除class
- 固定向右menu
- jQuery多級menu
- 用Jquery和Json實現多語言切換
- jQuery to do list
- jQuery slideToggle
- jQuery點擊顯示和隱藏CSS
- js如何獲取點擊標簽里的值
- JavaScript和JQuery獲取DIV的值
- jQuery加載公用文件
- createElement添加內容
- createElement添加內容 - 復制案例
- jQuery 遍歷案例
- HBuilder
- 案例
- Slider
- html5 video
- Ajax
- Ajax案例1: 無優化XMLHttpRequest
- Ajax案例2: json的XMLHttpRequest
- Ajax案例3: jQuery json的XMLHttpRequest
- Ajax案例4: H5 jQuery的XMLHttpRequest
- Ajax案例5:無跳轉刷新容器獲取外部內容
- Ajax搜索
- 兩種Ajax獲取數據方式
- Cookie
- 微信小程序
- 基礎的GET和POST頁面
- Node.js
- AngularJS
- AngularJS案例
- AngularJS案例1
- ReactJS
- React native
- API
- Postman API
- Web前端常用圖標
- Photoshop
- 前端cnd
- 前端工具
- 前端模板
- Export data
- 前端工程化
- 固定菜單
- 404頁面
- test
- JavaScript框架
- 瀏覽器兼容性