Dict.CN 在線詞典, 英語學習, 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統計

          留言簿(23)

          積分與排名

          優秀學習網站

          友情連接

          閱讀排行榜

          評論排行榜

          js+xml實現三級聯動菜單

          mselect.xml
          <?xml version="1.0" encoding="GB2312" ?>
          <Troot>
              <Item id="1" pid="0" c="1">大學</Item>
              <Item id="2" pid="0" c="3">中學</Item>
              <Item id="3" pid="0" c="3">小學</Item>
              <Item id="4" pid="2" c="2">高中</Item>
              <Item id="5" pid="2" c="5">初中</Item>
              <Item id="6" pid="15" c="3">清華大學</Item>
              <Item id="7" pid="15" c="4">北京大學</Item>
              <Item id="8" pid="5" c="3">天津鐵三中</Item>
              <Item id="9" pid="4" c="3">天津市二中</Item>
              <Item id="10" pid="16" c="2">天津音樂學院</Item>
              <Item id="11" pid="15" c="5">天津商學院</Item>
              <Item id="12" pid="4" c="3">耀華中學</Item>
              <Item id="13" pid="3" c="6">昆緯路小學</Item>
              <Item id="14" pid="2" c="6">七中</Item>
              <Item id="15" pid="1" c="1">綜合類院校</Item>
              <Item id="16" pid="1" c="1">藝術類院校</Item>
              <Item id="17" pid="15" c="4">醫科大學</Item>
              <Item id="18" pid="15" c="4">天津師范大學</Item>
              <Item id="19" pid="15" c="23">天津大學</Item>
              <Item id="20" pid="15" c="7">南開大學</Item>
              <Item id="21" pid="4" c="23">天津鐵一中</Item>
              <Item id="22" pid="5" c="5">天津鐵一中</Item>
              <Item id="23" pid="3" c="3">天津市鐵路職工子弟第三小學</Item>
              <Item id="24" pid="3" c="3">天津市鐵路職工子弟第一小學</Item>
              <Item id="25" pid="16" c="3">美術學院</Item>
              <Item id="26" pid="16" c="3">體育學院</Item>
          </Troot>

          test.html
          <HTML>
          <HEAD>
          <TITLE>XML版本的多級聯動</TITLE>
          <SCRIPT LANGUAGE=javascript>
          <!--
          /***********************************************
          //
          // 用DOM實現:基于XML的動態N級聯動
          //
          //**********************************************/

          // 最終版權歸 DSclub(任兀)擁有,您可以在未授權的情況下使用,但請保留此信息
          //
          //   EMail:dsclub@hotmail.com
          //   QQ:9967030
          //   Nick Name: DSclub(兀兒-干部)
          //   姓名:任兀

          // 多級聯動的Select集合
          var objSelects = new Array();

          // 創建應有的Select對象
          function funCreateSelectEl(passPid)
          {
          // 創建DOMDocument對象
          var xmlSrc = new ActiveXObject("MicroSoft.XMLDOM");
          xmlSrc = xmlSource.XMLDocument;

          // root為文檔對象的根節點
          var root = xmlSrc.documentElement;
          // 得到所傳父ID的所有節點
          var currentItems = root.selectNodes("http://Troot/Item[@pid = " + passPid + "]");
          var iItems = currentItems.length;

              if(iItems > 0)
              {
                  // 創建Select并把OnChange事件寫好
                  var newChild = document.createElement("<SELECT onchange='eventSltChange()' id='slt" + objSelects.length + "'>");
                  // 向集合中添加新建的Select對象
                  objSelects[objSelects.length] = newChild;
                 
                  // 向Select對向添加所有的Option
                  var i;
                  for(i = 0; i < iItems; i++)
                  {
                      var oOption = document.createElement("OPTION");
                      oOption.text = currentItems[i].text;
                      oOption.value = currentItems[i].attributes[0].text;
                      newChild.options.add(oOption);
                  }

                  // 將新建的Select放到目標上
                  oDIV.appendChild(newChild);
                 
                  // 先置一個空白空值
                  newChild.value = "";
              }
          }

          // Select的OnChange事件響應函數
          function eventSltChange()
          {
              // 刪除全部本層下的孩子
              var i;
              for(i = objSelects.length - 1; i > parseInt(event.srcElement.id.replace("slt",""), 10); i--)
              {
                  oDIV.removeChild(objSelects[i]);
                  objSelects.pop();
              }
             
              // 響應新的選擇
              funCreateSelectEl(event.srcElement.value);
             
              // 聯動的選擇結果
              var resultArray = new Array();
              for(i = 0; i < objSelects.length; i++)
              {
                  resultArray[i] = objSelects[i].value;
              }

              // 輸出選定
              OUTPUT.innerText = resultArray.join("-");
          }
          //-->
          </SCRIPT>


          </HEAD>
          <BODY onload="funCreateSelectEl(0)">
          <DIV ID="oDIV"></DIV>
          <XML ID="xmlSource" src="mselect.xml"/>
          <BR/>
          選定結果:<SPAN ID="OUTPUT"></SPAN>
          </BODY>
          </HTML>

          posted on 2006-02-22 17:28 都市淘沙者 閱讀(2075) 評論(3)  編輯  收藏 所屬分類: AJAX/XML/ANT/SOAP/WEBService

          評論

          # re: js+xml實現三級聯動菜單 2008-01-06 00:38 BlueCode

          沒有辦法默認的,當修改的時候  回復  更多評論   

          # re: js+xml實現三級聯動菜單[未登錄] 2008-06-24 13:37 aaa

          日,,,,文件都沒有打開xml的代碼
          怎么調用啊  回復  更多評論   

          # re: js+xml實現三級聯動菜單[未登錄] 2008-10-28 14:55 peter

          暈,FF在不行???  回復  更多評論   

          主站蜘蛛池模板: 黄龙县| 翁牛特旗| 重庆市| 青海省| 永胜县| 海林市| 遂平县| 炎陵县| 乌鲁木齐市| 田东县| 新疆| 四川省| 收藏| 边坝县| 平利县| 饶平县| 平顶山市| 来凤县| 江永县| 奉贤区| 财经| 芒康县| 龙岩市| 搜索| 修文县| 鄂托克前旗| 平遥县| 三亚市| 长治县| 竹溪县| 马公市| 南城县| 德钦县| 台湾省| 太和县| 崇阳县| 济源市| 安阳县| 岳阳市| 新津县| 化州市|