js 实现省市动态显示

 首先,编写 html 

<!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=gb2312" />
<title>省市级菜单制作</title>
</head>
<!--文件排版 外置 css 样式表 导入:这样更有利于页面维护-->
    <link href="css/layout.css" rel="stylesheet" type="text/css"/>
<!--文件操作 外置 js 脚本 -->
<script src="css/setShow.js" type="text/javascript"></script>
<body οnlοad="Load_show()">
    <center><a href="JSprovince.htm" name="menuTitle">这是一个动态菜单</a></h1></center><br /><br />
    <!--说明:该网页实现省市的动态显示-->
    <div class="P_float" οnclick="showList('china')">
            中国
        <ul id="cn_show">
            <li>北京</li>
            <li>上海</li>
            <li>天津</li>
            <li>重庆</li>
            <li>香港</li>
            <li>澳门</li>
            <li>台湾</li>
        </ul>
    </div>
    <div class="P_float" οnclick="showList('eastNorth')">
            东北
        <ul id="en_show">
            <li>黑龙江</li>
            <li>沈阳</li>
            <li>哈尔滨</li>
            <li>长春</li>
            <li>辽宁</li>
            <li>大连</li>
            <li>齐齐哈尔</li>
        </ul>
    </div>
    <div class="P_float" οnclick="showList('westNorth')">
            西北
        <ul id="wn_show">
            <li>
                新疆                
                <div>
                    <ul>
                        <li>乌鲁木齐</li>
                        <li>奎屯</li>
                        <li>石河子</li>
                        <li>昌吉</li>
                        <li>吐鲁番</li>
                        <li>库尔勒</li>
                        <li>阿克苏</li>
                        <li>克拉玛依</li>
                    </ul>
                </div>
            </li>
            <li>内蒙古</li>
            <li>陕西                
                <div>
                    <ul>
                        <li>西安</li>
                        <li>延安</li>
                        <li>榆林</li>
                        <li>渭南</li>
                        <li>商州</li>
                        <li>安康</li>
                        <li>汉中</li>
                        <li>宝鸡</li>
                    </ul>
                </div>
            </li>
            <li>甘肃                
                <div>
                    <ul>
                        <li>兰州</li>
                        <li>定西</li>
                        <li>天水</li>
                        <li>陇南</li>
                        <li>嘉峪关</li>
                        <li>酒泉</li>
                        <li>平凉</li>
                        <li>武威</li>
                        <li>张掖</li>
                        <li>临夏</li>
                    </ul>
                </div>
            </li>
            <li>宁夏</li>
            <li>西藏</li>
            <li>青海</li>
        </ul>
    </div>
    <div class="P_float" οnclick="showList('SouthofChina')">
            华南
        <ul id="sfc_show">
            <li>四川</li>
            <li>贵州                
                <div>
                    <ul>
                        <li>贵阳</li>
                        <li>遵义</li>
                        <li>安顺</li>
                        <li>都匀</li>
                        <li>凯里</li>
                        <li>铜仁</li>
                        <li>大盘水</li>
                        <li>兴义</li>
                    </ul>
                </div>
            </li>
            <li>安徽</li>
            <li>广东
                
                <div>
                    <ul>
                        <li>广州</li>
                        <li>深圳</li>
                        <li>东莞</li>
                        <li>汕头</li>
                        <li>江门</li>
                        <li>中山</li>
                        <li>英德</li>
                        <li>珠海</li>
                        <li>湛江</li>
                    </ul>
                </div>
            </li>
            <li>广西</li>
            <li>海南</li>
            <li>江西</li>
        </ul>
    </div>
    <div class="P_float" οnclick="showList('other')">
            其它省市
        <ul id="ots_show">
            <li>福建</li>
            <li>江苏</li>
            <li>浙江        
                <div>
                    <ul>
                        <li>杭州</li>
                        <li>湖州</li>
                        <li>嘉兴</li>
                        <li>宁波</li>
                        <li>绍兴</li>
                        <li>温州</li>
                        <li>丽水</li>
                        <li>金华</li>
                    </ul>
                </div>
            </li>
            <li>河南</li>
            <li>湖北</li>
            <li>湖南</li>
        </ul>
    </div>
</body>    
</html>

 

然后,给文档排版,使用外部样式表

/* CSS Document */
/*
 *首先设定 body 的属性
 */
body{
    height:600px;
    width:680px;
    background-image:url(../images/twoLeaf.jpg);
    background-position:center;
    background-repeat:no-repeat;
    margin-left:266px;
}
/* 这里设置div 的基本特性 */
div{
    font:24px bold;
    color:#660000;
    padding-left:30px;    
}
div ul li{
    list-style:none;
    font:"宋体" 16px bold;
    color:#3300FF;
}
/* 平行显示各个省市 */
.P_float{
    float:left;
}
a{
    color:#FF0000;
    font-size:36px;
    text-decoration:none;
}
a:hover{
    color:#3300FF;
    font-size:40px;
}

最后使用js 代码实现动态显示

/*
 * 思路:只要判断一个 ul 元素的事件为真,其它默认为隐藏
 * 当 点击 最上角的 ‘中国’ 时,以下内容动态显示出来
 * 条件:当 中国被点击时,中国以下节点 Childnodes 的样式 style.display = block;其它的默认为 none;
 */
 
//页面加载方法
function Load_show(){
    //获取句柄的全局变量:默认没有var 关键字
    cn = document.getElementById("cn_show");
    en = document.getElementById("en_show");
    wn = document.getElementById("wn_show");
    sfc = document.getElementById("sfc_show");
    ots = document.getElementById("ots_show");
    //页面加载时,所有的子区默认不显示
    cn.style.display = 'none';
    en.style.display = 'none';
    wn.style.display = 'none';
    sfc.style.display = 'none';
    ots.style.display = 'none';    
}

function showList(list){
    //声明一个载入句柄的数组,这样简化代码的冗余
    var handle = new Array();
    handle[0] = cn;
    handle[1] = en;
    handle[2] = wn;
    handle[3] = sfc;
    handle[4] = ots;
    //判断单击事件
    if(list == "china"){
        for(var i=0;i<handle.length;i++){
            handle[i].style.display = 'none';
        }
        cn.style.display = 'block';
    }
    if(list == "eastNorth"){;
        for(var i=0;i<handle.length;i++){
            handle[i].style.display = 'none';    
        }
        en.style.display = 'block'
    }
    if(list == "westNorth"){;
        for(var i=0;i<handle.length;i++){
            handle[i].style.display = 'none';    
        }
        wn.style.display = 'block'
    }
    if(list == "SouthofChina"){;
        for(var i=0;i<handle.length;i++){
            handle[i].style.display = 'none';    
        }
        sfc.style.display = 'block'
    }
    if(list == "other"){;
        for(var i=0;i<handle.length;i++){
            handle[i].style.display = 'none';    
        }
        ots.style.display = 'block'
    }
}


以上是我的源代码,和大伙分享一下!

 

转载于:https://www.cnblogs.com/rick168/archive/2013/05/24/3096901.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值