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)
  • 相关阅读:
    位运算简介以及常用技巧
    JMeter 十六:加密处理
    JMeter 十五:函数以及变量
    JMeter 十四:最佳实践
    JMeter 十三:生成 report dashboard
    JMeter 十二:命令行执行
    JMeter 十一:参数化
    JMeter 十:录制脚本--使用bodboy
    LoadRunner录制:检查点
    LoadRunner录制: 选择协议
  • 原文地址:https://www.cnblogs.com/a-lonely-wolf/p/5658961.html
Copyright © 2011-2022 走看看