秋水无恨大侠的一段Jscript代码,我 想改成javascript的,以便Netscape能用,请各位大侠们帮忙

shloshlo 2004-10-14 07:24:26

原文:利用xml数据岛实现多级关联下拉选择框的做法

http://blog.csdn.net/qiushuiwuhen/archive/2003/07/22/14100.aspx

<select name=year></select>
<select name=month></select>
<select name=date></select>
<select name=clock></select>
<input name=result>

<script>
var arrSel=["year","month","date","clock"];//arrSel定义了要修改的下拉框和xml数据的节点名称
</script>

<xml id=xmldata>
<xmldata>
<year value="2000">
<month value="4">
<date value="14">
<clock value="一点" />
<clock value="三点" />
</date>
<date value="17">
<clock value="一点" />
</date>
</month>
<month value="5">
<date value="15">
<clock value="一点" />
<clock value="四点" />
<clock value="七点" />
</date>
</month>
</year>
<year value="2001">
<month value="7">
<date value="16">
<clock value="一点" />
<clock value="五点" />
<clock value="九点" />
</date>
</month>
</year>
</xmldata>
</xml>

<script>
function qswhXml(num){
/******* by qiushuiwuhen(2002-5-17) ********/
var i,j,arrTemp=[];
for(i=0;i<num;i++)arrTemp[i]=document.all(arrSel[i]).options[document.all(arrSel[i]).selectedIndex].text
if(num==arrSel.length){//这里处理最后的数据。
document.all("result").value="选中了("+arrTemp+")";return;
}
with(document.all(arrSel[num])){
length=0
var obj=document.all.xmldata.XMLDocument.childNodes[0];
for(i=0;i<num;i++)obj=obj.selectSingleNode(arrSel[i]+'[@value="'+arrTemp[i]+'"]');
for(i=0;i<obj.childNodes.length;i++)options[length++].text=obj.childNodes[i].getAttribute("value");
onchange=new Function("qswhXml("+(num+1)+")");
onchange();
}
}
qswhXml(0);
</script>


...全文
90 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cuixiping 2004-10-15
  • 打赏
  • 举报
回复
ie: document.all["objectID"]
document.all.objectID
document.getElementById("objectID")

ns: document.getElementById("objectID")
shloshlo 2004-10-14
  • 打赏
  • 举报
回复
我这里改了一下,把with改掉了,ie没有问题了,但是netscape7.2仍旧提示document.all is not a function. line 55
怎么办呢??

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>

</HEAD>

<BODY>


<select name=year></select>
<select name=month></select>
<select name=date></select>
<input name=result>

<script>
var arrSel=["year","month","date"];//arrSel定义了要修改的下拉框和xml数据的节点名称
</script>

<xml id=xmldata>
<xmldata>
<year value="2000">
<month value="4">
<date value="2"></date>
<date value="3"></date>
</month>
<month value="5">
<date value="15"></date>
<date value="16"></date>
<date value="17"></date>
</month>
</year>
<year value="2001">
<month value="7">
<date value="16"></date>
</month>
</year>
</xmldata>
</xml>

<SCRIPT >

function qswhXml(num){
/******* by qiushuiwuhen(2002-5-17) ********/
var i,j,arrTemp=[];
for(i=0;i<num;i++)

arrTemp[i]=document.all(arrSel[i]).options[document.all(arrSel[i]).selectedIndex].text

if(num==arrSel.length){//这里处理最后的数据。
document.all("result").value="选中了("+arrTemp+")";return;
}


document.all(arrSel[num]).length=0;
var obj=document.all.xmldata.XMLDocument.childNodes[0];
for(i=0;i<num;i++) obj=obj.selectSingleNode(arrSel[i]+'[@value="'+arrTemp[i]+'"]');
for(i=0;i<obj.childNodes.length;i++){

document.all(arrSel[num]).options[document.all(arrSel[num]).length++].text=obj.childNodes[i].getAttribute("value");
}
onchange=new Function("qswhXml("+(num+1)+")");
onchange();

}
qswhXml(0);

</SCRIPT>


</BODY>
</HTML>
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2004-10-14 07:24
社区公告
暂无公告