关于一个页面放置多个联动下拉菜单的疑问!麻烦大家帮帮忙!进来看看!谢谢!
在网上当了个XML的无限联动下拉菜单,但是,我的页面需要放置多个两级的联动下拉菜单,但是这个程序不行,我看了好久,改来改去,就是没办法把它改成一个页面能放置多个的,所以,请大家帮帮忙想想办法,源代码如下:
--------------xmlselect.js文件---------------------------------------
/*--------------------------------------
PowerBy:OnceDream@2004
Info:无限级下拉菜单
---------------------------------------*/
function LoadXml(XmlSrc,Selstr)
{
for(i=0;i<Selstr.length-1;i++)
document.all(Selstr[i]).onchange=new Function("DoChange("+(i+1)+")")
DoChange(0);
}
function DoChange(n)
{
var sel=Selstr;
var XmlStr=new ActiveXObject("Microsoft.XMLDOM");
XmlStr.async=false;
XmlStr.load(XmlSrc+".xml");
//获取字节点路径
var sPath="/*";
for(var i=0;i<n;i++) sPath +=("/*[" + document.all(sel[i]).selectedIndex + "]");
//加载数据
var items = XmlStr.selectSingleNode(sPath).childNodes;
var s = document.all(sel[n]);
with(s){
length=0;
for(var i=0;i<items.length;i++)
{
var text=items[i].getAttribute("text");
var v=items[i].getAttribute("value");
//eval(s+".options["+i+"] = new Option("+text+","+v+")");
options[length] = new Option(text,v);
}
}
if(++n<sel.length) DoChange(n);
}
-----------------------------xmlselect.js文件结束-----------------------------------
-----------------------------XML文件------------------------------------
<?xml version="1.0" encoding="gb2312"?>
<Class>
<Big text="请选择" value="">
<Middle text="请选择" value=""></Middle>
</Big>
<Big text="安徽" value="54{$}安徽">
<Middle text="安庆" value="56{$}安庆"></Middle>
<Middle text="蚌埠" value="57{$}蚌埠"></Middle>
<Middle text="合肥" value="55{$}合肥"></Middle>
<Middle text="芜湖" value="58{$}芜湖"></Middle>
</Big>
<Big text="福建省" value="59{$}福建省">
<Middle text="福州" value="60{$}福州"></Middle>
<Middle text="泉州" value="61{$}泉州"></Middle>
<Middle text="厦门" value="62{$}厦门"></Middle>
<Middle text="漳州" value="63{$}漳州"></Middle>
</Big>
</Class>
-----------------------XML文件结束------------------------------------
---------------------test1.htm测试页1文件----------------------------
<script language="javascript" src="xmlselect.js"></script>
<select name="AreaPlist" style="font-size:12px;width=60px;"></select>
<select name="AreaClist" style="font-size:12px;width=60px;"></select>
<script language="javascript">
var XmlSrc="area";
var Selstr=["AreaPlist","AreaClist"];
LoadXml(XmlSrc,Selstr);
</script>
说明:该文件运行结果正常!
-----------------------test1.htm文件结束--------------------------------------
但是这样就不行,如下:
--------------------------test2.htm测试文件----------------------------------
<script language="javascript" src="xmlselect.js"></script>
<select name="AreaPlist" style="font-size:12px;width=60px;"></select>
<select name="AreaClist" style="font-size:12px;width=60px;"></select>
<br><br>
<select name="Plist" style="font-size:12px;width=60px;"></select>
<select name="Clist" style="font-size:12px;width=60px;"></select>
<script language="javascript">
var XmlSrc="area";
var Selstr=["AreaPlist","AreaClist"];
LoadXml(XmlSrc,Selstr);
var a="area";
var b=["Plist","Clist"];
LoadXml(a,b);
</script>
说明:当页面再放一个两级联动菜单的时候,第二个就不正常!在xmlselect.js文件中可以看出是变量的问题!麻烦那位朋友帮忙修改一下,谢谢!我研究了好长时间了,苦于JS太菜了!所以麻烦大家了!谢谢!谢谢!
-------------------------------test2.htm测试文件结束----------------------------------