JavaScript結(jié)合HTML DOM實(shí)現(xiàn)聯(lián)動(dòng)菜單
本文實(shí)例為大家分享了js三級(jí)聯(lián)動(dòng)菜單展示的具體代碼,供大家參考,具體內(nèi)容如下
效果圖:

代碼:
<!DOCTYPE HTML>
<html>
<head>
<title>聯(lián)動(dòng)菜單</title>
<meta charset="utf-8" />
<script>
/*使用 HTML DOM 的方式實(shí)現(xiàn)聯(lián)動(dòng)菜單*/
var categories=[
{
"id":10,
"name":'男裝',
"children":[
{"id":101,"name":'正裝'},
{"id":102,"name":'T恤'},
{"id":103,"name":'褲衩'}
]
},
{
"id":20,
"name":'女裝',
"children":[
{"id":201,"name":'短裙'},
{"id":202,"name":'連衣裙'},
{
"id":203,
"name":'褲子',
"children": [
{"id":2031,"name":'長(zhǎng)褲'},
{"id":2031,"name":'九分褲'},
{"id":2031,"name":'七分褲'}
]
},
]
},
{"id":30,"name":'童裝',"children":[
{"id":301,"name":'帽子'},
{"id":302,"name":'套裝',"children":[
{"id":3021,"name":"0-3歲"},
{"id":3021,"name":"3-6歲"},
{"id":3021,"name":"6-9歲"},
{"id":3021,"name":"9-12歲"}
]},
{"id":303,"name":'手套'}
]}
];
</script>
</head>
<body>
<div id="category"></div>
<script>
//查找id為category的div保存在div中
var div=document.getElementById("category");
//定義函數(shù)createSelect,接收一個(gè)數(shù)組參數(shù)arr
function createSelect(arr){
//創(chuàng)建一個(gè)select
var sel=document.createElement("select");
//創(chuàng)建一個(gè)option,設(shè)置其內(nèi)容為"-請(qǐng)選擇-",值為-1,將option添加到select中
sel.add(new Option("--請(qǐng)選擇--",-1));
//遍歷arr
for(var i=0;i<arr.length;i++){
//創(chuàng)建一個(gè)option,設(shè)置內(nèi)容為當(dāng)前元素的name屬性,設(shè)置value為當(dāng)前元素的id屬性,將新option添加到select中
sel.add(new Option(arr[i].name,arr[i].id));
}//(遍歷結(jié)束)
//為sel綁定onchange事件
sel.onchange=function(){
//反復(fù):只要當(dāng)前select不是div的lastChild
while(this!=div.lastChild)
//讓div刪除其lastChild
div.removeChild(div.lastChild);
//獲得當(dāng)前選中項(xiàng)的下表-1,保存在i中
var i=this.selectedIndex-1;
//如果arr中i位置的商品類別有children
if(i>=0&&arr[i].children!==undefined)
//用arr中i位置的商品類別的children數(shù)組創(chuàng)建下一個(gè)select
createSelect(arr[i].children);
}
//將select添加到div中
div.appendChild(sel);
}
createSelect(categories);
</script>
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JSON+HTML實(shí)現(xiàn)國(guó)家省市聯(lián)動(dòng)選擇效果
- js簡(jiǎn)單實(shí)現(xiàn)HTML標(biāo)簽Select聯(lián)動(dòng)帶跳轉(zhuǎn)
- PHP+Mysql+Ajax+JS實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)
- JS實(shí)多級(jí)聯(lián)動(dòng)下拉菜單類,簡(jiǎn)單實(shí)現(xiàn)省市區(qū)聯(lián)動(dòng)菜單!
- js實(shí)現(xiàn)的全國(guó)省市二級(jí)聯(lián)動(dòng)下拉選擇菜單完整實(shí)例
- 最好用的二級(jí)聯(lián)動(dòng) 原生js實(shí)現(xiàn)你值得擁有
- jquery+json 通用三級(jí)聯(lián)動(dòng)下拉列表
- js操作二級(jí)聯(lián)動(dòng)實(shí)現(xiàn)代碼
- JS制作簡(jiǎn)單的三級(jí)聯(lián)動(dòng)
- 基于jquery & json的省市區(qū)聯(lián)動(dòng)代碼
相關(guān)文章
IE6中鏈接A的href為javascript協(xié)議時(shí)不在當(dāng)前頁(yè)面跳轉(zhuǎn)
IE6中當(dāng)鏈接A的href為javascript協(xié)議時(shí)不能在當(dāng)前頁(yè)面跳轉(zhuǎn),本例給出有效的解決方法,大家不妨參考下2014-06-06
JavaScript中合并Object的三種基本方法小結(jié)
在開(kāi)發(fā)過(guò)程中,我們經(jīng)常會(huì)遇到合并對(duì)象的需求,今天我們就來(lái)了解一下合并對(duì)象的幾種基本方法,文中通過(guò)代碼示例介紹的非常詳細(xì),感興趣的小伙伴跟著小編一起來(lái)看看吧2023-08-08
js Element Traversal規(guī)范中的元素遍歷方法
對(duì)于元素間的空格,在IE9之前,都不會(huì)返回文檔節(jié)點(diǎn),其它的所有瀏覽器都會(huì)返回文檔節(jié)點(diǎn),為了兼容瀏覽器這間的差異,又不更改已有的DOM 標(biāo)準(zhǔn),所以有了 Element Traversal 規(guī)范2018-04-04
IE中document.createElement的iframe無(wú)法設(shè)置屬性name的解決方法
這篇文章主要介紹了IE中document.createElement的iframe無(wú)法設(shè)置屬性name的解決方法,需要的朋友可以參考下2015-09-09
echarts折線圖每段顯示不同的顏色的實(shí)現(xiàn)
本文主要介紹了echarts折線圖每段顯示不同的顏色的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
JavaScript中number轉(zhuǎn)換成string介紹
這篇文章主要介紹了JavaScript中number轉(zhuǎn)換成string介紹,本文講解了4個(gè)把number轉(zhuǎn)換成string的函數(shù),需要的朋友可以參考下2014-12-12

