您的位置:首页 > Web前端 > JavaScript

js动态绑定制作下拉列表

2016-10-21 13:49 302 查看
本文为博主原创,更多好文章请点击这里

首先我们可以利用javascript脚本,调用对应列表的id来实现动态效果的展示,但是,如果遇到像淘宝一样的网站,他的菜单比较多的情况的时候,我们通过动态绑定的方式就比较麻烦了。

所以,今天给大家介绍一个可以动态设置方式

首先我们先来准备下啦列表

在Html中建立对应的列表元素,如下

<ul>
<li > <a href="#"> 首页</a>
<dl style="display: none" id="content-0">
<dt><a href="#">行业新闻</a></dt>
<dt><a href="#">公司新闻</a></dt>
<dt><a href="#">国内动态</a></dt>
</dl>
</li>
<li> <a href="#"> 企业新闻</a>
<dl style="display: none" id="content-1">
<dt><a href="#">行业新闻</a></dt>
<dt><a href="#">公司新闻</a></dt>
<dt><a href="#">国内动态</a></dt>
</dl>
</li>

</ul>


同时你要设置你的
<li>
标签下的
<dl>
标签的display设置成none(就是把dl整个框架隐藏起来)

接着我们可以来写js代码了

写代码之前,我们先来了解下实现原理

通过js获取
<li>
标签的一个集合

然后动态给每个
<li>
标签添加一个index(下标)

再次循环便利数组,将每一个
<dl>
标签的css属性置空(如果没有用到css可以忽略)或者将原文的style标签下的display再次重新设置成none

找到正在操作的
<li>
标签节点,修改他的css属性或者display属性

下面我们来看看代码的实现

<script type="text/javascript">
window.onload = function () {
// 1. 获取所有选项卡LI标签
var olis = document.getElementsByTagName("li");
// 2. 循环便利所有的标签
for(var i=0; i<olis.length; i++){
// 3. 给每个li标签添加一个index
olis[i].index = i;
// 4. 动态绑定
olis[i].onmouseover = function () {
// 5. 再次循环遍历 或者 找到要操作的层或列表
for(var j=0; j<olis.length; j++){
//                    olis[j].getElementsByTagName("dl")[0];
// 6. 清除和隐藏所有元素的className和div/dl层
//                odl.style.display = "block";
document.getElementById("content-"+j).style.display = "none";
}
// 7. 显示选项卡对应的DIV
document.getElementById("content-"+this.index).style.display="block";
}

}
}
</script>


本文为博主原创,更多好文章请点击这里
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 脚本