设为首页
收藏本站
最近更新

文章搜索
本类热门

 

首页 >> 网络编程 >> ASP >> ASP实例 >> 新闻正文 [字体:  ] [打印文档
ASP + XML + JavaScript 实现动态无限级联动菜单

文章作者:Jockey
责任编辑:大鱼 录入时间:2004-12-30 17:41:02 来源:Jockey的专栏
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意. 

p;  var prefix = ["MSXML3","MSXML2","MSXML","Microsoft"];
   for (var i=0;i<prefix.length;i++) {
    try {
     var doc = new ActiveXObject(prefix[i] +

".DomDocument");
     doc.setProperty("SelectionLanguage","XPath");
     return doc;     
    } catch (e) {}
   }
  }
  return null;
 };

 function attachXML() {
  oDocument = oXML.documentElement;
  if (!oDocument) { throw new Error('No XML data!'); return; }
  for (var i=0;i<aSel.length-1;i++){
   addEvent(Sel[i], "onchange", function(x) {
    return function () { doChange(x); }
   }(i+1));
  }
  doChange(0);
 };

 function selectXMLNode(x) {
  var sPath = "/*";
  var oDoc = oDocument;
  for (var i=0;i<x;i++)
   sPath += "/*[" + (Sel[i].selectedIndex+1) + "]";
  if (typeof(oDoc.selectSingleNode)!='undefined') return

oDoc.selectSingleNode(sPath);
  else {
   var doc=oDoc.nodeType==9?oDoc:oDoc.ownerDocument;
   var res = doc.createNSResolver(oDoc.nodeType==9?

oDoc.documentElement:oDoc);
   return doc.evaluate(sPath,oDoc, res, 9, null).singleNodeValue;
  }
 };

 function addEvent(el, sHandler, fnc) {
  if (el.attachEvent) {
   el.attachEvent(sHandler, fnc);
  } else if (el.addEventListener) {
   el.addEventListener(sHandler.replace(/on/i, ''), fnc, false);
  } else {
   el[sHandler] = fnc;
  }
 };

 function doChange(n) {
  var el = selectXMLNode(n);
  var nodes = el ? el.childNodes :[];
  var s = Sel[n];
  var f = 0;
  if (nodes.length>0) {
   with (s){
    length = 0;
    for (var i = 0,j = 0;i<nodes.length;i++) {
     if (nodes[i].nodeType!=1)continue;
     var t = nodes[i].getAttribute("text");
     var v = nodes[i].getAttribute("value") ? nodes

[i].getAttribute("value") : t;
     if (v == store[n]) f = j;
     options[j++] = new Option(t, v);
    } 
    options[f].selected = true;
   }
   if (++n<Sel.length) doChange(n);
  } else {
   for (var i=n; i<Sel.length; i++) {
    with (Sel[i]) {
     length = 0;
     options[0] = new Option('--');
     options[0].selected = true;
    }
   }
  }
 }; 
};

//-----------------------------xmlselect.js文件结束-------------------------------

由于Xml的操作简便直接,使用起来得心应手。

本人只知一些XML的皮毛知识,如有错误请大家指出。我认为不用什么去了解XML等好多的专业知识,但可以满足我们使用就已经足够了。

在此感谢蒲佛信为我们提供这么优秀的js代码.

此新闻共有3页 上一页 1 2 3 下一页

推荐好友 | 频道收藏 | 打印文档 | 报告错误  
相关连接
·ASP上传的进度条实时反映上传情况
·使用ASP生成图片彩色校验码
·ASP + XML + JavaScript 实现动态无限级联动菜单
·怎样在ASP里面创建统计图表
·文本搜索
·ASP智能搜索的实现
·本地图片,音乐等ASP防盗代码
·在ASP文件中调用DLL
同一专题
·无相关专题
发表评论 版权声明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有
转载
要求转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。
共有评论查看评论
姓名: