当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 利用xml数据岛实现多级关联下拉选择框的做法

Javascript
js select 标签选定项的值获取代码
js GridView 实现自动计算操作代码
Discuz 公告效果(自动换行,无间隙滚动)
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
JS 常用校验函数
HTML代码中标签的全部属性 中文注释说明
input 高级限制级用法
js onpropertychange输入框 事件获取属性
Javascript 生成无限下拉列表实现代码
javascript 极速 隐藏/显示万行表格列只需 60毫秒
用JavaScript实现单继承和多继承的简单方法
javascript 闭包函数做显隐内容
js 页面模块自由拖动实例
js Flash插入函数免激活代码
setTimeout 不断吐食CPU的问题分析
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
js 浏览器版本及版本号判断函数2009年
Javascript 原型和继承(Prototypes and Inheritance)
HTML 自动伸缩的表格Table js实现
两个INPUT同步输入的方法小结 兼容IE和firefox

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 459 ::
收藏到网摘: n/a

<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>

 

秋水无恨 :)