地址联动(基于xpath的实现)
来源:互联网 发布:淘宝店铺编辑宝贝 编辑:程序博客网 时间:2024/06/05 04:56
1.编写address02.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript">/* * 用以下方式查找,遍历起来效率不高,可以考虑直接使用xpath来完成查询 /address/province-->找的就是所有的province对象 /address/province[@value='xxx']/city-->找所以的province中的属性里value=xx的city节点 //city[@value='xx']/country--->/address/province/city[@value='xx']/country */(function(){var areaDoc = null;window.onload = init;function init() {initDoc();var pn = document.getElementById("province");pn.onchange = function() {setAddress("/address/province[@value='"+this.value+"']/city","city");}var cn =document.getElementById("city");cn.onchange = function() {setAddress("//city[@value='"+this.value+"']/country","country");}}function setAddress(xpath,nodeId) {var nodes = getNodeByXpath(areaDoc,xpath);insertOption(nodeId,nodes);}function initProvince() {var path = "/address/province";//一下方法是ie支持//var ns = areaDoc.selectNodes(path);//alert(ns.length);//FF支持/*var ns = areaDoc.evaluate(path,areaDoc,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);var node = null;while((node=ns.iterateNext())) {alert(node.getAttribute("name"));}*/setAddress(path,"province");}function getNodeByXpath(root,path) {if(window.ActiveXObject) {return root.selectNodes(path);} else if(XPathResult) {var ns = new Array();var xr = areaDoc.evaluate(path,areaDoc,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);var node = null;while((node=xr.iterateNext())) {ns.push(node);}return ns;} else {alert("请选择主流浏览器");return null;}}function insertOption(nodeId,ns) {var pn = document.getElementById(nodeId);pn.options.length = 1;for(var i=0;i<ns.length;i++) {var node = document.createElement("option");node.text = ns[i].getAttribute("name");node.value = ns[i].getAttribute("value");pn.add(node);}}function initDoc() {//通过ajax读取Area.xml,并且获取所有的省份内容var xhr = createXMLHttpRequest();xhr.open("GET","Area.xml",true);xhr.onreadystatechange = function() {if(xhr.readyState==4&&xhr.status==200) {areaDoc = xhr.responseXML;initProvince();}}xhr.send();}//根据节点获取值function getValueByProp(node,prop) {return (node.getElementsByTagName(prop))[0].firstChild.nodeValue;}function createXMLHttpRequest() {if(window.XMLHttpRequest) {//针对其他主流浏览器return new XMLHttpRequest();} else if(window.ActiveXObject) {//针对IE5和IE6return new ActiveXObject("Microsoft.XMLHTTP");} else {alert("你使用的浏览器不支持XMLHttpRequest,请换一个浏览器再试!");return null;}}})();</script></head><body><select id="province"><option>请选择省份</option></select><select id="city"><option>请选择城市</option></select><select id="country"><option>请选择县份</option></select></body></html>
2.在加上Area.xml即可
0 0
- 地址联动(基于xpath的实现)
- 地址联动(基于节点查找的实现)
- ajax基于xpath的三级联动
- 基于外部一个省市联动js框架,实现初始化特定的地址级联
- 地址联动jquery插件的实现
- angularjs实现地址的三级联动
- 基于Spinner实现的三级联动、多级联动
- 使用listview实现简单的三级地址联动选择器
- 使用js实现一个地址的三级联动
- 使用pickerview实现(省市区)地址选择器的三级联动
- 无限联动导航,类似地址的联动
- 基于SSH实现下拉框的二级联动
- 三级联动的地址选择器
- Android基于开源项目的WheelView的时间、地址联动选择对话框
- Android基于开源项目的WheelView的时间、地址联动选择对话框
- Android基于开源项目的WheelView的时间、地址联动选择对话框【转】
- Android 地址选择器,实现省市区三级联动
- 三级联动:js实现淘宝地址更改
- 文字输入组件的使用与介绍
- 对称加密算法之RC4介绍及OpenSSL中RC4常用函数使用举例
- 初学者 学好JAVA最关键几点
- 2015 大寒,奔跑
- 大数据——hadoop1.2.1+hbase0.94.11+nutch2.2.1+elasticsearch0.90.5安装配置攻略(中集)
- 地址联动(基于xpath的实现)
- Changing the ID of the Dynamixel
- Object(三)toString方法
- Connection reset by peer的原因
- spring mvc @RequestMapping_method_params_value 传递id不带占位符
- 菜单(二)
- 负数的二进制表示方法
- NVIDIA Jetson TK1学习与开发(七):图文详解OpenCV在Jetson TK1上的安装和使用
- Redhat Enterprise Linux Advanced Server 4上安装MYSQL+APACHE+PHP+ZEND问题