A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 冯超 高级黑马   /  2013-3-28 09:04  /  1706 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. <?xml version="1.0" encoding="GB2312"?>
  2. <china>
  3.         <province name="湖北省">
  4.                 <city>武汉</city>
  5.                 <city>孝感</city>
  6.                 <city>仙桃</city>
  7.                 <city>襄樊</city>
  8.         </province>
  9.         <province name="江苏省">
  10.                 <city>福州</city>
  11.                 <city>222</city>
  12.                 <city>4444</city>
  13.                 <city>55555</city>
  14.         </province>
  15.         <province name="湖南省">
  16.                 <city>sdfs</city>
  17.                 <city>sfdsdx</city>
  18.                 <city>cscsf</city>
  19.                 <city>ghghg</city>
  20.                 <city>ghghgsxsxs</city>
  21.         </province>
  22. </china>
复制代码
这个是xml文件!
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3.   <head>
  4.     <title>7.html</title>
  5.        
  6.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  7.     <meta http-equiv="description" content="this is my page">
  8.     <meta http-equiv="content-type" content="text/html">
  9.    
  10.     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  11.   </head>
  12.   
  13.   <body>
  14.            <select name="province" id="province">
  15.                    <option value="">请选择</option>
  16.                    <option value="湖北省">湖北</option>
  17.                 <option value="江苏省">江苏</option>
  18.                 <option value="湖南省">湖南</option>
  19.            </select>
  20.         <select name="citys" id="citys">
  21.                 <option value="">请选择。。。</option>
  22.         </select>
  23.   </body>
  24.   <script type='text/javascript'>
  25.                   var n = 0;  //删除结点的标记
  26.                   window.onload = function() {
  27.                         document.getElementById("province").onchange = function() {
  28.                                 //alert("xxx");
  29.                                 //加载xml文件
  30.                                 var flag;
  31.                                 var xmlDoc = parseXML("7.xml");
  32.                                 var proElements = xmlDoc.getElementsByTagName("province");
  33.                                 var proElement = document.getElementById("province");
  34.                                 var opNodes = proElement.childNodes;
  35.                                 for(var i = 0; i < opNodes.length; i++) {
  36.                                         if(opNodes[i].selected) {
  37.                                                 //alert(i);  //3 5 7
  38.                                                 if(i == 3) {
  39.                                                         flag = 0;
  40.                                                         break;
  41.                                                 }
  42.                                                 else if(i == 5) {
  43.                                                         flag = 1;
  44.                                                         break;
  45.                                                 }
  46.                                                 else if(i == 7) {
  47.                                                         flag = 2;
  48.                                                 }
  49.                                                 else
  50.                                                         return false;
  51.                                                
  52.                                         }
  53.                                 }
  54.                                
  55.                                 /****    显示湖北省的城市    *******/
  56.                                 /*
  57.                                  * <province name="湖北省">
  58.                                                 <city>武汉</city>
  59.                                                 <city>孝感</city>
  60.                                                 <city>仙桃</city>
  61.                                                 <city>襄樊</city>
  62.                                         </province>
  63.                                  */
  64.                                 var city = proElements[flag].childNodes;
  65.                                 var citysElement = document.getElementById("citys");
  66.                                 //
  67.                                 //printNodeMessage("NODE",huBei[1].firstChild);
  68.                                 for(var i = 0; i < city.length; i++) {
  69.                                         //1
  70.                                         var opNode = document.createElement("option");
  71.                                         //2
  72.                                         opNode.setAttribute("value", city[i].firstChild.nodeValue);
  73.                                         //3
  74.                                         var textNode = document.createTextNode(city[i].firstChild.nodeValue);
  75.                                         //4
  76.                                         opNode.appendChild(textNode);
  77.                                         //5
  78.                                         citysElement.appendChild(opNode);
  79.                                 }
  80.                         }
  81.                 }
  82.                 /*****/
  83.                 function printNodeMessage(nodeName,node) {
  84.                         alert(nodeName + ":" + "nodeVale:" + node.nodeValue + " nodeTyoe:" + node.nodeType + " nodeName:" + node.nodeName);
  85.                 }
  86.                 /*****/
  87.                 function parseXML(filename){
  88.                         try //Internet Explorer
  89.                         {
  90.                                 xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  91.                         }
  92.                         catch (e) {
  93.                                 try //Firefox, Mozilla, Opera, etc.
  94.                                 {
  95.                                         xmlDoc = document.implementation.createDocument("", "", null);
  96.                                 }
  97.                                 catch (e) {
  98.                                         alert(e.message);
  99.                                         return;
  100.                                 }
  101.                         }
  102.                                
  103.                         //关闭异步加载
  104.                         xmlDoc.async = false;
  105.                         //加载xml文档
  106.                         xmlDoc.load(filename);
  107.                         return xmlDoc;
  108.                 }
  109.   </script>
  110. </html>
复制代码
这个是操作的代码!
   我的想法是:
在js函数外面定义一个:var n = 0; //删除结点的标记
每次添加函数的时候,n++用来记录加入结点的个数。
再用selNode.removeChild(opNode[n])进行删除
   可是情况不理想,不知道什么编译增加的结点的时候总是不对·不知道为什么!

21.jpg (6.64 KB, 下载次数: 22)

21.jpg

22.jpg (9.44 KB, 下载次数: 20)

22.jpg

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1 辛苦分

查看全部评分

3 个回复

倒序浏览
本帖最后由 qwe8234118 于 2013-3-28 09:20 编辑

好复杂,看不懂。。。。。
虽然看不懂 不过我还是留名 等以后我做到你那一步我就可以当习题做了  哇恰恰
回复 使用道具 举报
qwe8234118 发表于 2013-3-28 09:19
好复杂,看不懂。。。。。
虽然看不懂 不过我还是留名 等以后我做到你那一步我就可以当习题做了  哇恰恰 ...

我解决了··
回复 使用道具 举报
王浩威 来自手机 中级黑马 2013-3-28 10:28:46
板凳
呵呵。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马