JQuery 加载并解析 XML实现省市联动

JQuery 加载并解析 XML
  • JQuery 可以通过 $.get()$.post() 方法来加载 xml.
    这里写图片描述
  • JQuery 解析 XML 与解析 DOM 一样, 可以使用 find(), children() 等函数来解析和用 each() 方法来进行遍历

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>test01.html</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
    <script language="JavaScript" src="../js/jquery-1.4.2.js"></script>
  </head>
  <body>
     <select id="province" name="province">
       <option value="">请选择....</option>
     </select>
     <select id="city" name="city">
        <option value="">请选择.....</option>
     </select>
  </body> 
    <script language="JavaScript">

            /*
             * jquery通过$.get()或者$.post()方法来解析并加载xml文件
             * 
             *  * 以$.get(url,callback)方法为例
             *      * url:要解析的xml文件的路径
             *      * callback:回调函数,function(xml){}
             *          * xml:解析后的内容
             */
            $.get("cities.xml",function(xml){
                var docXml = xml;

                //在jquery中使用标签名来查找对应标签,利用find()方法,传入标签名
                var $provinceXmlElements = $(docXml).find("province");

                $provinceXmlElements.each(function(index,domEle){
                    var $provinceXmlValue = $(domEle).attr("name");

                    /*
                     * <select id="province" name="province">
                           <option value="">请选择....</option>
                         </select>
                     */
                    var $option = $("<option></option>");
                    $option.attr("value",$provinceXmlValue);
                    $option.text($provinceXmlValue);

                    var $provinceElement = $("#province");
                    $provinceElement.append($option);

                });

                $("#province").change(function(){
                    var $provinceValue = $("#province").val();

                    //清空
                    /*
                     * <select id="city" name="city">
                            <option value="">请选择.....</option>
                            <option value="长春">长春</option>
                         </select>
                     */
//                  $("#city option[value!='']").each(function(index,domEle){
//                      $(domEle).remove();
//                  });

                    $("#city option[value!='']").remove();



                    $provinceXmlElements.each(function(index,domEle){
                        var $provinceXmlValue = $(domEle).attr("name");

                        if($provinceValue==$provinceXmlValue){
                            var $cityXmlELements = $(domEle).find("city");

                            $cityXmlELements.each(function(index,domEle){
                                var $cityXmlValue = $(domEle).text();

                                /*
                                 * <select id="city" name="city">
                                        <option value="">请选择.....</option>
                                     </select>
                                 */
                                var $option = $("<option></option>");
                                $option.attr("value",$cityXmlValue);
                                $option.text($cityXmlValue);

                                var $cityElement = $("#city");
                                $cityElement.append($option);

                            });
                        }
                    });
                });
            });

    </script>
</html>
<?xml version="1.0" encoding="GB2312"?>
<china>
    <province name="吉林省">
        <city>长春</city>
        <city>吉林市</city>
        <city>四平</city>
        <city>松原</city>
        <city>通化</city>
    </province>
    <province name="辽宁省">
        <city>沈阳</city>
        <city>大连</city>
        <city>鞍山</city>
        <city>抚顺</city>
        <city>铁岭</city>
    </province>
    <province name="山东省">
        <city>济南</city>
        <city>青岛</city>
        <city>威海</city>
        <city>烟台</city>
        <city>潍坊</city>
    </province>
</china>    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值