之前在angular的时候实现多级联动很方便,只需监听某个变量的变化然后执行函数就行,昨天自己写了个联动:

var getOptions = function(param, domId){
        $.ajax({
            url:"/admin/ucm/queryResource?areaCode="+param,
            type:'get',
            success:function(res){
                var data = res.bizData.lists;

                $("#"+domId + " option:gt(1)").remove();
                //删除原有的1-n个option,防止不断追加
                for(var i = 0,len = data.length;i < len;i++){
                    (function(i){
                        if(!i){
                            $("#"+domId).append("<option value=\'" + data[i].code + "\' selected>" + data[i].name + "</option>");
                        }
                        else{
                            $("#"+domId).append("<option value=\'" + data[i].code + "\'>" + data[i].name + "</option>");
                        }
                        console.log(data[i]);
                    })(i)
                    //这里有闭包,小心绕行
                }
                $("#"+domId).trigger("change");
                //触发联动事件
            },
            error : function(){
                console.log("error",res);
            }
        })
    };



    $("#provence").change(function(){
        getOptions($("#provence").val(), "city")
    });
    $("#city").change(function(){
        getOptions($("#city").val(), "country")
    });
    $("#country").change(function(){
        getOptions($("#country").val(), "area")
    });
    getOptions("0","provence");
    //触发联动事件