使用javascript中读取Xml文件做成的一个二级联动菜单
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>menu2level.html</title>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <script type="text/javascript">
- function loadXML(){
- var xmlDoc;
- try{
- //IE
- xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
- }catch(e){
- try{
- xmlDoc = document.implementation.createDocument("","",null);
- }catch(e){
- alert(e.message);
- return;
- }
- }
- xmlDoc.async=false;
- xmlDoc.load("cities.xml");
- return xmlDoc;
- }
- //网页加载完在加载 完成省份加载
- onload=function(){
- var xmlDocument = loadXML();
- var provinceArr =xmlDocument.getElementsByTagName("province");
- var proSize = provinceArr.length;
- for(var i=0;i<proSize;i++){
- //创建option节点
- var optionElement = document.createElement("option");
- var provinceName = provinceArr[i].getAttribute("name");
- //创建文本节点
- var textElement =document.createTextNode(provinceName);
- optionElement.appendChild(textElement);
- optionElement.setAttribute("value", provinceName);
- var node = document.getElementById("province");
- node.appendChild(optionElement);
- }
- }
- //省份改变事件
- function changeProvince(node){
- //获取选择的角标
- var index = node.selectedIndex;
- //获取对应的省份名
- var provinceName = node.options[index].value;
- loadCities(provinceName);
- }
- //根据省份编号加载城市信息
- function loadCities(proName){
- var xmlDocument = loadXML();
- var provinceArr =xmlDocument.getElementsByTagName("province");
- //获取城市的元素
- var citySelectEle = document.getElementById("cities");
- var size = citySelectEle.options.length;
- for(var i=size;i>0;i--){
- citySelectEle.remove(i);
- }
- //获取省份的个数
- var proSize = provinceArr.length;
- var proElement;
- //获取对应的省份元素
- for(var i=0;i<proSize;i++){
- if(provinceArr[i].getAttribute("name")==proName){
- proElement = provinceArr[i];
- break;
- }
- }
- //获取省份的城市信息
- var citiesArr = proElement.getElementsByTagName("city");
- var len = citiesArr.length;
- for(var i=0;i<len;i++){
- //创建option节点
- var optionElement = document.createElement("option");
- //获取城市名
- var cityName = citiesArr[i].firstChild.nodeValue;
- //创建文本节点
- var textElement =document.createTextNode(cityName);
- optionElement.appendChild(textElement);
- optionElement.setAttribute("value", cityName);
- citySelectEle.appendChild(optionElement);
- }
- }
- function getValue(){
- var pro = document.getElementById("province").value;
- var city = document.getElementById("cities").value;
- alert(pro+":"+city);
- }
- </script>
- </head>
- <body>
- <select id="province" onchange="changeProvince(this)">
- <option value="" selected="selected">--省份--</option>
- </select>
- <select id="cities">
- <option value="" selected="selected">--城市--</option>
- </select>
- <input type="button" value="弹出" onclick="getValue()"/>
- </body>
- </html>
使用javascript中读取Xml文件做成的一个二级联动菜单的更多相关文章
- C#中读取xml文件指定节点
目录(?)[-] XmlDocumentSelectSingleNode方法的使用 XmlDocumentSelectNodes方法的使用 通过节点属性查找指定节点 参考:Select XML N ...
- .net中读取xml文件中节点的所有属性信息
功能描述: 将数据以xml的格式记录成配置文件,需要获取配置文件中的数据时,则获取对应的配置文件,读取配置文件里对应节点的所有属性. 逻辑实现: 1.将数据配置好在xml文件中. 2.获取xml文件中 ...
- Silverlight 中 读取XML文件
一:xml文件 二:后台代码 private void ReadXml() { List<TreeViewItem> nodes = new List<TreeViewItem> ...
- javascript 实现 对XML文件 2级/3级联动操作
js代码 //实现对xml文档的读取:function loadXMLDoc(dname) { try // Internet Explorer { xmlDoc = new ActiveXObjec ...
- JavaScript 解析读取XML文档 实例代码(转)
JavaScript解析读取XML文件,主要就是加载并解析XML文件,然后就可以测试解析的XML文件的内容,打印输出来. 在线演示:http://demo.jb51.net/js/2012/readx ...
- js 读取xml文件
读取xml文件 [原创 2007-6-20 17:35:37] 字号:大 中 小 js中读取xml文件,简单的例子: <html><head><script> ...
- IE下JS读取xml文件示例代码
JS读取xml文件具体步骤为:创建DOM对象.加载xml文件(仅适用于IE)附示例代码,感兴趣的朋友可以参考下,希望对大家有所帮助使用javascript脚本读取xml文件,这里暂只考虑IE浏览器st ...
- C#中常用的几种读取XML文件的方法
1.C#中常用的几种读取XML文件的方法:http://blog.csdn.net/tiemufeng1122/article/details/6723764/
- 在C#中创建和读取XML文件
1.创建简单的XML文件 为了便于测试,我们首先创建控制台应用程序,项目命名为CreateXml,Program.cs代码如下: 这样会在C盘根目录下创建data2.xml文件,文件内容为 using ...
随机推荐
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(三):素材最终解决方法
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- Android面试题总结
1.Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟 ...
- An universal algorithm design of fixed length substring locating
An universal algorithm design of fixed length substring locating Stringlocating is a very commo ...
- [GitHub]第一讲:浏览器中使用GitHub
文章转载自http://blog.csdn.net/loadsong/article/details/51591407 看到一篇关于GitHub的文章,感觉不错,因此转载来以备推敲学习. 不会用 Gi ...
- ADFS部署过程中设置network service对证书的读取权限
今儿在部署客户正式环境的ADFS时候遇到一问题,在配置完基于声明的身份验证后通过url访问居然报错了,这干过N回的事怎么会出错了呢,百思不得其解 网页报错如下 系统日志报错如下, 回想过程中的每一步, ...
- shell脚本整段注释
摘自:http://zhidao.baidu.com/link?url=XmCCZmfluRe6n8TjPRKJTx4GGOUPSGX1VNBm-euqGdpKGpveTESxC0HL90UBNT5n ...
- ActivityManagerService启动过程分析
之前讲Android的View的绘制原理和流程的时候,讲到过在Android调用setContentView之后,Android调用了一个prepreTravle的方法,这里面就提到了Activity ...
- Device tree customization
Step 1: OEMs can create their own device tree by adding "qcom,msm-id/qcom,board-id" entry ...
- 【Android】自定义ListView的Adapter报空指针异常解决方法
刚刚使用ViewHolder的方法拉取ListView的数据,但是总会报异常.仔细查看代码,都正确. 后来打开adapter类,发现getView的返回值为null. 即return null. 将n ...
- Dynamics CRM2011 同一个FORM表单同一个字段可以摆放多次
这是一个很细微的问题,细微到很容易被忽略(可能其他人没有但我确实是忽略了) 红框中的勾默认是勾选的,可能有人会像我一样,从没关心过这个地方还有个勾也从没关心过要把这个勾去掉,所以在表单上A.B两个节中 ...
