62,046
社区成员
发帖
与我相关
我的任务
分享
var xmlDoc = "";
$(function () {
$.ajax({
url: "js/Ctry/xml/area.xml",
dataType: 'xml',
type: 'GET',
timeout: 2000,
error: function (xml) {
alert("加载XML 文件出错!");
},
success: function (xml) {
xmlDoc = xml;
var $s1 = $("#SelectProvince");
var $s2 = $("#SelectCity");
var $s3 = $("#SelectDistrict");
var v1 = "北京市";
var v2 = "北京辖区";
var v3 = "东城区";
var root = $(xmlDoc).find("address")[0];
$(root).children("province").each(function () {
appendOptionTo($s1, $(this).attr("name"), $(this).attr("name"), v1);
});
$s1.change(function () {
$s2.html("");
var province_node = $(root).children("province")[this.selectedIndex];
$(province_node).children("city").each(function () {
appendOptionTo($s2, $(this).attr("name"), $(this).attr("name"), v2);
});
$s2.change();
}).change();
$s2.change(function () {
$s3.html("");
var province_node = $(root).children("province")[$s1[0].selectedIndex];
var city_node = $(province_node).children("city")[this.selectedIndex];
$(city_node).children("country").each(function () {
appendOptionTo($s3, $(this).attr("name"), $(this).attr("name"), v3)
});
}).change();
function appendOptionTo($o, k, v, d) {
var $opt = $("<option>").text(k).val(v);
if (v == d) { $opt.attr("selected", "selected") }
$opt.appendTo($o);
}
}
});
});
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(txt);
}
还可以参考: IE9 ActiveX filtering, XML Islands and Making the Workarounds to Get Things Work
如果是通过文件名加载,可以参考如何让ActiveXObject( "Microsoft.XmlDom ")对象在非IE浏览器下显示数据?firefox(火狐)