</body>
</html>
关于使用jQuery与服务器通信,我使用的是$.post方法,该方法的具体使用可以参考jQuery官方文档,这里我想说的是,遍历后通过对象.属性访问时,这个属性的名字是区分大小写的,这个名字是服务器端定义的名字,因为服务器序列化的是服务器端的实体对象。
在这个例子中,关键点就是如何使用XPath表达式,如何调用System.Xml.XPath命名空间下的XPathSelectElements(string xpath)方法。
最终结果如下图:

代码13,31,50行可以优化。
不建议多次修改DOM结构,可以拼接字符串后一次append
数据源是xml,我会用xslt来解析xml直接输出<option>,这样就不用再前台拼接字符串了。要求所有节点ID不能有相同。
<select id=”province” name=”province” next=”#city”>
</select>
<select id=”city” name=”city” next=”#county”>
<option>==请选择市==</option>
</select>
</form>
<select id=”county” name=”county”>
<option>==请选择县==</option>
</select>
<script type=”text/javascript”>
$(“#province,#city”).change(function () {
var nextSelect = $(this.getAttribute(“next”));
//if (nextSelect.size() > 0) {
nextSelect.find(“option:gt(0)”).remove();
var _id = $(this).find(“option:selected”).val();
var query = { parentId: _id };
$.get(“/Handler.ashx”, query, function (data, status) {
//…
nextSelect.append(“<option>…</option>….”);
});
//}
});
</script>










