" />
基於XML的動態n級鏈接
mselect.xml
& lt?XML version = " 1.0 " encoding = " GB 2312 "?& gt
& ltTroot & gt
& ltitem id = " 1 " PID = " 0 " c = " 1 " >大學
& ltItem id="2" pid="0" c="3 " >中學
& ltItem id="3" pid="0" c="3 " >小學
& ltItem id="4" pid="2" c="2 " >中學
& ltItem id="5" pid="2" c="5 " >初中
& ltItem id="6" pid="15" c="3 " >清華大學。
& ltItem id="7" pid="15" c="4 " >北京大學。
& ltItem id="8" pid="5" c="3 " >天津鐵三中學
& ltItem id="9" pid="4" c="3 " >天津第二中學
& ltitem id = " 10 " PID = " 16 " c = " 2 " >天津音樂學院
& ltitem id = " 11 " PID = " 15 " c = " 5 " >天津商業大學
& ltItem id="12" pid="4" c="3 " >華鑰中學
& ltItem id="13" pid="3" c="6 " >魏坤路小學
& ltItem id="14" pid="2" c="6 " >第七中學
& ltitem id = " 15 " PID = " 1 " c = " 1 " >綜合學院
& ltitem id = " 16 " PID = " 1 " c = " 1 " >藝術學院
& ltitem id = " 17 " PID = " 15 " c = " 4 " >醫科大學
& ltitem id = " 18 " PID = " 15 " c = " 4 " >天津師範大學
& ltitem id = " 19 " PID = " 15 " c = " 23 " >天津大學
& ltItem id="20" pid="15" c="7 " >南開大學
& ltItem id="21" pid="4" c="23 " >天津市鐵壹中學
& ltItem id="22" pid="5" c="5 " >天津市鐵壹中學
& ltItem id="23" pid="3" c="3 " >天津鐵路職工子弟第三小學
& ltItem id="24" pid="3" c="3 " >天津市第壹鐵路職工子弟小學
& ltItem id="25" pid="16" c="3 " >美術學院
& ltItem id="26" pid="16" c="3 " >體育學院
& lt/Troot & gt;
mselect.htm
& ltHTML & gt
& ltHEAD & gt
& ltTITLE & gtXML版本的多級鏈接
& lt腳本語言= javascript & gt
& lt!-
/***********************************************
//
//用DOM實現:基於XML的動態N級鏈接
//
//**********************************************/
//最終版權歸瑞思科技所有,您可以在沒有授權的情況下使用,但請保留這些信息。
//
//作者:rust soft(拍軟狂歌)
//多級鏈接選擇集
var objSelects = new Array();
//創建預期的選擇對象。
函數funCreateSelectEl(passPid)
{
//創建壹個DOMDocument對象
var XML src = new ActiveX object(" MicroSoft。XML DOM ");
xmlSrc = xmlSource。XMLDocument
// root是文檔對象的根節點。
var root = XML src . documentelement;
//獲取具有傳遞的父ID的所有節點。
var current items = root . select nodes("//Troot/Item[@ PID = "+passPid+"]");
var I items = current items . length;
if(I items & gt;0)
{
//創建壹個Select並編寫OnChange事件。
var new child = document . createelement(" & lt;SELECT onchange = ' eventSltChange()' id = ' SLT "+objselects . length+" ' & gt);
//向集合中添加新的Select對象。
objSelects[objSelects . length]= new child;
//將所有選項添加到選擇對中。
var I;
for(I = 0;我& lt項目;i++)
{
var op tion = document . createelement(" OPTION ");
Option.text = currentItems[i]。文本;
Option.value = currentItems[i]。屬性[0]。文本;
new child . options . add(op tion);
}
//將新創建的選擇放在目標上。
odiv . appendchild(new child);
//先設置壹個空值。
newChild.value =
}
}
// Select的OnChange事件響應函數
函數eventSltChange()
{
//刪除該級別下的所有子級。
var I;
for(I = objselects . length-1;我& gtparse int(event . srcelement . id . replace(" SLT ",""),10);我-)
{
odiv . remove child(objSelects[I]);
objselects . pop();
}
//響應新的選擇
funCreateSelectEl(event . srcelement . value);
//鏈接的選擇結果
var resultArray =新數組();
for(I = 0;我& ltobjSelects.lengthi++)
{
resultArray[i] = objSelects[i]。價值;
}
//輸出選定的
output . innertext = result array . join("-");
}
//-& gt;
& lt/SCRIPT & gt;
& lt/HEAD & gt;
& ltBODY onload = " funCreateSelectEl(0)" & gt;
& ltDIV ID = " oDIV " & gt& lt/DIV & gt;
& ltXML ID = " XML source " src = " m select . XML "/& gt;
& ltBR/>;
選定的結果:
& lt/BODY & gt;
& lt/HTML & gt;
把mselect.xml和mselect.xml保存在同壹個目錄下,IE運行mselect.xml。