zoukankan      html  css  js  c++  java
  • 一个jquery 的 地址联动插件

    有了上一个博客的基础,我们现在来做一个地址插件:

    首先还是Area.xml文件,这里就不展示了:

    HTML文件:  

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
            #province{
                margin: 4px;
            }
            #city{
                margin: 4px;
            }
            #country{
                margin: 4px;
            }
        </style>
        
        <script type="text/javascript" src="jquery-1.8.3.js"></script>
        <script type="text/javascript" src="jquery.address.js"></script>
        <script type="text/javascript">
            $(function(){
                $("#address").getAddress();    
            })
        </script>
    
      </head> 
      <body>
        <div id="address"></div>
      </body>
    </html>

    JS插件:

    (function($){
    
        $.fn.getAddress = function(options){
            var settings = $.extend({
                url:"Area.xml",
                province:"province",
                city:"city",
                country:"country",
                attrName:"name",
                attrValue:"value"
            },options||{});
    
            var data;
            $.get(settings.url,function(value){
                data = value;
                //获得省份数据    
                getNode(settings.province,ps);
                
            });
    
            var ps = $("<select id='province'><option>请选择省份</option><select>");
            var cis = $("<select id='city'><option>请选择城市</option><select>");
            var cns = $("<select id='country'><option>请选择地区</option><select>");
            this.append(ps);
            this.append(cis);
            this.append(cns);
    
            //当点击省份时,获得下面的city
            ps.on("change",function(){
                cis.find("option:gt(0)").remove();//先清空后面的select
                cns.find("option:gt(0)").remove();
                getNode(settings.province+"[value="+$(this).attr(settings.attrValue)+"] "+settings.city,cis);
            });
    
            //当点击城市时,获得下面的地区
            cis.on("change",function(){
                cns.find("option:gt(0)").remove();
                getNode(settings.city+"[value="+$(this).attr(settings.attrValue)+"] "+settings.country,cns);
            });
    
            function getNode(node,id){
                $(data).find(node).each(function(){
                    id.append(creteOption($(this)));
                });
            }
    
            function creteOption(obj){
                return "<option value="+obj.attr(settings.attrValue)+">"+obj.attr(settings.attrName)+"</option>";
            }
        }
    })(jQuery)
  • 相关阅读:
    [BZOJ2049] [SDOI2008] 洞穴勘测
    BZOJ2594: [Wc2006]水管局长数据加强版
    P4211[BZOJ 3626] [LNOI2014]LCA
    FindLetter 类——查找文件中特定的字符,每一行开头为某一个字符,则跳过
    SolrJ 的运用
    Golang
    注册免费试用12个月的亚马逊AWS云计算服务
    TensorFlow学习笔记(一)
    Hexo之旅(四):文章编写技巧
    高阶函数
  • 原文地址:https://www.cnblogs.com/a-lonely-wolf/p/5658961.html
Copyright © 2011-2022 走看看