您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)JavaScript結(jié)合HTML DOM如何實(shí)現(xiàn)聯(lián)動菜單,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
效果圖:
代碼:
<!DOCTYPE HTML> <html> <head> <title>聯(lián)動菜單</title> <meta charset="utf-8" /> <script> /*使用 HTML DOM 的方式實(shí)現(xiàn)聯(lián)動菜單*/ 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":'長褲'}, {"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)容為"-請選擇-",值為-1,將option添加到select中 sel.add(new Option("--請選擇--",-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>
關(guān)于“JavaScript結(jié)合HTML DOM如何實(shí)現(xiàn)聯(lián)動菜單”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。