ajax+jquery做省市联动 现在的问题是 我第一次点省的时候 能够把省下的市显示出来 当我第二次点的时候 选择了其他的省的时候 市显示的是第一次点的时候所有的市和第二次所有的市 应该怎么解决
$("#id").html("<option>选择市</option>");把下拉框标签内容清空,再重新加载读出的市就可以了。。
选择其它省的时候先清空市的值
显示市前先清除市列表。
加载之前先清空城市列表。
应该是第二次点的时候没有把市区的数据清空,$("#select").html("");
$(function() { $("#省ID").change(function() { $("#市ID option:gt(0)").each(function() { $(this).remove(); //移除原有项 }); //省份下拉菜单的change事件 var params = $(this).val(); //此处参数名要注意和后台方法参数名要一致 if (params == "请选择") { $("#市ID option[value=请选择]").attr("selected", true); $("#市ID option:gt(0)").remove(); } else { $.ajax({ type: "GET", //提交方式 url: "../CascadeQuery.ashx?str=" + encodeURIComponent(params), //提交的页面/方法名 data: "{}", //参数(如果没有参数:null) dataType: "text", //类型 contentType: "application/x-www-form-urlencoded; charset=utf-8", beforeSend: function(XMLHttpRequest) { }, success: function(msg) { //将返回来的项添加到下拉菜单中 var JSONDeserialize = JSON.parse(msg); var obj = JSONDeserialize.部门; $.each(obj, function(i, n) { var option = "<option>" + n.BDName + "</option>"; $(option).appendTo("#市ID"); }); }, error: function(xhr, msg, e) { } }); } }); });
呵呵,可以先清空$("#id").remove();
然后$("#id").appendTo() 来重新追加