最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS無限極樹形菜單,json格式、數(shù)組格式通用示例

 更新時間:2013年07月30日 16:12:36   作者:  
本文為大家介紹下JS無級樹形菜單的實現(xiàn),修改了一下數(shù)據(jù)格式,是json和數(shù)組或者混合型的數(shù)據(jù)都通用,不用特定key等,想學習的朋友可以參考下
修改了一下數(shù)據(jù)格式,是json和數(shù)組或者混合型的數(shù)據(jù)都通用,不用特定key等
復制代碼 代碼如下:

<!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 type="text/javascript" src="http://d1.lashouimg.com/static/js/release/jquery-1.4.2.min.js"></script>
<title>JS無級樹樹形菜單,json格式,數(shù)組格式通用</title>
<style type="text/css">
.menuTree
{
margin-left: -30px;
}
.menuTree div
{
padding-left: 30px;
}
.menuTree div ul
{
overflow: hidden;
display: none;
height: auto;
}
.menuTree span
{
display: block;
height: 25px;
line-height: 25px;
padding-left: 5px;
margin: 1px 0;
cursor: pointer;
border-bottom: 1px solid #CCC;
}
.menuTree span:hover
{
background-color: #e6e6e6;
color: #cf0404;
}
.menuTree a
{
color: #333;
text-decoration: none;
}
.menuTree a:hover
{
color: #06F;
}
.btn
{
height: 30px;
margin-top: 10px;
border-bottom: 1px solid #CCC;
}
</style>
</head>
<body>
<div class="btn">
<input name="" type="button" id="btn_open" value="全部展開" />&nbsp;&nbsp;
<input name="" type="button" id="btn_close" value="全部收縮" />
</div>
<div id="menuTree" class="menuTree">
</div>
</body>
</html>
<script type="text/javascript">
var json = { "navnums": { "0": "8051", "4": "4969", "8": "206", "5": "126", "9": "2174" }, "hotwords": "美食", "mvonline": [9, 8, [9, 8, 7, 6, 5, 4], 6, 5, 4], "district_online": "1", "zone_online": "1", "subway_online": "1", "city_online": "1" };
/*遞歸實現(xiàn)獲取無級樹數(shù)據(jù)并生成DOM結(jié)構(gòu)*/
var str = "";
var forTree = function (o) {
var urlstr = "";
var keys = new Array();
for (var key in o) {
keys.push(key);
}
for (var j = 0; j < keys.length; j++) {
k = keys[j];
if (typeof o[k] == "object") {
urlstr = "<div><span>" + k + "</span><ul>";
} else {
urlstr = "<div><span>" + k + "=" + o[k] + "</span><ul>";
}
str += urlstr;
var kcn = 0;
if (typeof o[k] == "object") {
for (var kc in o[k]) {
kcn++;
}
}
if (kcn > 0) {
forTree(o[k]);
}
str += "</ul></div>";
}
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("[+] " + spanContent)
}
});


$("#menuTree").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);
}
}
})
} ()

/*展開*/
$("#btn_open").click(function () {
$("#menuTree ul").show(300);
curzt("-");
})
/*收縮*/
$("#btn_close").click(function () {
$("#menuTree ul").hide(300);
curzt("+");
})
function curzt(v) {
$("#menuTree span").each(function (index, element) {
var ul = $(this).siblings("ul");
var spanStr = $(this).html();
var spanContent = spanStr.substr(3, spanStr.length);
if (ul.find("div").html() != null) {
$(this).html("[" + v + "] " + spanContent);
}
});
}
</script>

相關文章

  • 輕松學習Javascript閉包

    輕松學習Javascript閉包

    閉包(closure)是Javascript語言的一個難點,也是它的特色,很多高級應用都要依靠閉包實現(xiàn)。這篇文章主要介紹了Javascript閉包,需要的朋友可以參考下
    2017-03-03
  • Moment.js常見用法總結(jié)

    Moment.js常見用法總結(jié)

    這篇文章主要介紹了Moment.js常見用法總結(jié),需要的朋友可以參考下
    2022-05-05
  • JavaScript之Getters和Setters 平臺支持等詳細介紹

    JavaScript之Getters和Setters 平臺支持等詳細介紹

    現(xiàn)在,JavaScript的Getters和Setters使用非常廣泛,它和每個JavaScript開發(fā)者的切身利益息息相關,我們先來快速了解什么是Getters和Setters,以及它們?yōu)槭裁春苡杏?然后,我們來看看現(xiàn)在都有哪些平臺支持Gettets和Setters
    2012-12-12
  • JS實現(xiàn)跟隨鼠標的鏈接文字提示框效果

    JS實現(xiàn)跟隨鼠標的鏈接文字提示框效果

    這篇文章主要介紹了JS實現(xiàn)跟隨鼠標的鏈接文字提示框效果,涉及javascript鼠標事件及頁面元素樣式操作的相關技巧,非常簡單實用,需要的朋友可以參考下
    2015-08-08
  • Element Plus UI 組件庫中 mt-x 類詳解

    Element Plus UI 組件庫中 mt-x 類詳解

    在ElementPlusUI組件庫中,mt-x類用于設置元素的外邊距,其中"mt"代表"margin-top",x表示外邊距的大小,這種類名的使用可以快速調(diào)整元素的頂部外邊距,簡化樣式管理,確保設計的一致性,本文給大家介紹Element Plus UI 組件庫中 mt-x 類基本知識,感興趣的朋友一起看看吧
    2024-11-11
  • 很多人都是用下面的js刷新站IP和PV

    很多人都是用下面的js刷新站IP和PV

    有人用JS做網(wǎng)站跳轉(zhuǎn),也有人用很多其他作弊的方法,今天又發(fā)現(xiàn)有太多的人用這樣的方法實現(xiàn)兩個站的IP共享,把http://m.fzitv.net替換成自己的站
    2008-09-09
  • element?UI中在?el-select?與?el-tree?結(jié)合組件實現(xiàn)過程

    element?UI中在?el-select?與?el-tree?結(jié)合組件實現(xiàn)過程

    項目上實現(xiàn)某個功能,使用到了?el-select?和?el-tree?組合實現(xiàn),記錄下兩者結(jié)合的實現(xiàn)過程,對?el-select?與?el-tree?結(jié)合組件實現(xiàn)過程感興趣的朋友跟隨小編一起看看吧
    2023-02-02
  • TypeScript中d.ts類型聲明文件的實現(xiàn)

    TypeScript中d.ts類型聲明文件的實現(xiàn)

    .d.ts 文件是 TypeScript 的類型聲明文件,它們的主要作用是為 JavaScript 庫提供類型支持,本文主要介紹了TypeScript中d.ts類型聲明文件的實現(xiàn),感興趣的可以了解一下
    2023-10-10
  • javascript 用函數(shù)實現(xiàn)繼承詳解

    javascript 用函數(shù)實現(xiàn)繼承詳解

    下面小編就為大家?guī)硪黄猨avascript 用函數(shù)實現(xiàn)繼承詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • JavaScript實現(xiàn)橫向滑出的多級菜單效果

    JavaScript實現(xiàn)橫向滑出的多級菜單效果

    這篇文章主要介紹了JavaScript實現(xiàn)橫向滑出的多級菜單效果,涉及JavaScript數(shù)學運算及頁面元素樣式動態(tài)變換的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10

最新評論

汤原县| 嵊泗县| 郁南县| 玛沁县| 长白| 固安县| 富锦市| 海南省| 太保市| 增城市| 贵德县| 阳信县| 阿鲁科尔沁旗| 铁岭市| 定安县| 平顶山市| 新乡市| 巴林左旗| 盐边县| 祁门县| 治县。| 鄂伦春自治旗| 平邑县| 璧山县| 施甸县| 罗平县| 延安市| 滦南县| 阳新县| 永清县| 沂水县| 饶阳县| 绵阳市| 安国市| 将乐县| 拉萨市| 兴宁市| 泰州市| 安多县| 中宁县| 新乡县|