html页面怎么实现二级下拉菜单

html页面怎么实现二级下拉菜单,第1张

现在我们为nav添加样式,首先去掉默认的margin和padding,再去掉<ul><li>标签的list-style样式和<a>标签的默认下划线。接下来再添加适当的样式(根据实际需要添加)进行美化,如一下样式:

<style type="text/css">

* { margin:0padding:0}

ul, li { list-style:none}

a { text-decoration:none}

.nav { border:2px solid #cccborder-right:noneoverflow:hiddenfloat:leftmargin:100px 0 0 300px}

.nav ul li { float:left}

.nav ul li a { width:120pxheight:40pxtext-align:centerline-height:40pxdisplay:blockborder-right:2px solid #cccbackground:#eeecolor:#666}

.nav ul li a:hover{ color:#f00}

</style>

打开页面预览效果

这个,其实比较简单

数据上来说,相当于是一个多维数组

比如,系 :

计算机,中文,英语

然后是专业

计算机 -> 软件工程,xxx专业 ...

中文 -> 汉语言文学,xxx专业 ...

数据库在设计上,你可以将他们都放在一个表里面,可以有这些列

id          唯一id

name    名称,可以是专业名称,也可以是系名称

parent  指定如果是专业,是数据那个系,这里可以存成系的id,

如果是系,那么这里直接填0,表示就可以

这样的话,一个demo数据

id                name                parent

1                计算机系            0

2                软件工程            1

这样,上边,后台的数据就这个节奏就可以满足,如果专业还有细分,那这个结构也可以满足

前台显示的时候,这里分成俩个select来显示就可以

第一个select用来显示系,查询parent为0的数据,显示到select里面就可以

第二个select用来显示系的专业,查询的时候,将第一个select的系id拿到,直接数据库里面查询parent为第一个select选择系的id的数据

demo

选择系:

    <select id="department" onchange="change(this)"></select>

    

选择专业:

    <select id="professional"></select> //用js读取数据,然后生成代码

//根据parentid,读取数据,然后返回

function getData(parentId , callback){

    $.ajax({

        url : 'test.do',//后台数据地址

        data : {parentId : parentId},//请求parentid的数据

        success : function(result){

            alert(result)

            callback(result)

        }

    })

}

function renderOptions(arr , el){//生成select 的 option

    el.empty()

    $.each(data , function(index , item){

        $('<option/>').attr({

            value : item.id

        }).html(item.name).appendTo(el)

    })

}

var department = $('#department')//系的select

getData(0 , function(data){//请求系的数据

    department.empty()

    renderOptions(data , department)//这里生成系的select

})

var professional = $('#professional')//专业的select

function change(el){//当系变化的时候

    var parentId = $(el).val()//这里得到选择的系的id

    getData(parentId , function(data){

        professional.empty()

        renderOptions(data , professional )//这里生成专业的select

    })

}

就是这样的原理

后台还需要一个查询,就是根据parentid查询数据,就可以了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6186398.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存