[共享]很久没来了,更新了点东东。有兴趣的看看 ====>>> 二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式 又加了个四级联动的演示:http://blog.csdn.net/KimSoft/archive/2006/06/14/796743.aspx 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哈、钻石都来啦,拜读过你的代码,其实我这个也怪少的嘛。核心代码只有64行。代码长是因为又用“类”的方式实现了一次。function setupCascadeSelect(cascadeSelect, parent, nodes, isOnChange) { if (isOnChange == null){ isOnChange = false; } cascadeSelect.onchange = function (){ setupCascadeSelect(this, this.options[this.selectedIndex].value, nodes, true); }; cascadeSelect.getAttr = function (attrName) { return this[attrName] ? this[attrName] : this.getAttribute(attrName); }; cascadeSelect.getElementById = function (id) { return this.form.elements[id] ? this.form.elements[id]: document.getElementById(id); }; cascadeSelect.setDisplayStyle = function(value) { if (!this.multiple){ this.style.display = value; } var subElement = this.getElementById(this.getAttr("subElement")); if (subElement != undefined){ subElement.setDisplayStyle = this.setDisplayStyle; } }; nodes.getChildNodesByParent = function (parent) { var childNodes = new Array(); if (parent + "" == ""){ return childNodes; } for (var i = 0; i < nodes.length; i++){ if (nodes[i][0] != undefined && nodes[i][0] == parent){ childNodes[childNodes.length] = nodes[i]; } } return childNodes; } if(!isOnChange){ cascadeSelect.options.length = 0; var defaultText = cascadeSelect.getAttr("defaultText"); var defaultValue = cascadeSelect.getAttr("defaultValue"); var selectedValue = cascadeSelect.getAttr("selectedValue"); if (defaultText != undefined && defaultValue != undefined){ cascadeSelect.options[cascadeSelect.options.length] = new Option(defaultText, defaultValue); } var childNodes = nodes.getChildNodesByParent(parent); for (var i = 0; i < childNodes.length; i++){ cascadeSelect.options[cascadeSelect.options.length] = new Option(childNodes[i][1], childNodes[i][2]); if (selectedValue != undefined && selectedValue == childNodes[i][2]){ cascadeSelect.selectedIndex = cascadeSelect.options.length - 1; } } } if (cascadeSelect.options.length > 0){ cascadeSelect.setDisplayStyle(""); var subElement = cascadeSelect.getElementById(cascadeSelect.getAttr("subElement")); if (subElement != undefined){ setupCascadeSelect(subElement, cascadeSelect.options[cascadeSelect.selectedIndex].value, nodes, false); } } else { cascadeSelect.setDisplayStyle("none"); }} MYLiao(醉书生) <script src="动态页面"></script>在动态页里生成数据,如果数据比较稳定或比较大,可以直接生成一个js文件。 to HoToo(闲耘)(hotoo.cn) ,我也不是什么高手,以后多切磋,见过你发的代码了,没时间还没细看,不过效果看起来很不错。 to BlueDestiny(www.never-online.net):你人呢,看世界杯看晕啊,QQ上找不到你。 http://community.csdn.net/Expert/topic/4670/4670852.xml?temp=.8892328 呵呵,KimSoft,你现在找我的话,最好差不多十二点找我吧,现在看球精神着呢,还有mozilla的“htc”,现在也在写着,关于XBL语言有了解吗?有了解的话,也帮一把吧,毕竟看英文的参考很累的。:D to BlueDestiny:最近郁闷着在 无论如何先BS百毒!!!!!99收藏夹换新服务器拉全站ajax开发速度快的不得了哦http://www.99scj.com在线收藏,在线网摘,在线RSS。。 js如何才能模拟键盘按键? severlet中如何关闭页面? Ext的PropertyGrid如何设顶2列的宽度呀,只有1个总宽度 如何使一段iframe的代码用js输出到html页面的头部,原html能自动下沉 请问文档 请问jquery除了not("[nodeType=1]")可以使用nodeTpye以外还有哪里可以使用? 怎么实现这种效果 如何在表单中限制输入的字符?急用~~~~~~~~~~~~~~~~~~~~~~~~ 为什么csdn不把左边树的解决方案贴出来 如何制作象普通应用程序那样有页框的效果啊? 更改图片的scr属性这么难吗?????? 搞网页设计需要Java,XML等吗
function setupCascadeSelect(cascadeSelect, parent, nodes, isOnChange) {
if (isOnChange == null){
isOnChange = false;
}
cascadeSelect.onchange = function (){
setupCascadeSelect(this, this.options[this.selectedIndex].value, nodes, true);
};
cascadeSelect.getAttr = function (attrName) {
return this[attrName] ? this[attrName] : this.getAttribute(attrName);
};
cascadeSelect.getElementById = function (id) {
return this.form.elements[id] ? this.form.elements[id]: document.getElementById(id);
};
cascadeSelect.setDisplayStyle = function(value) {
if (!this.multiple){
this.style.display = value;
}
var subElement = this.getElementById(this.getAttr("subElement"));
if (subElement != undefined){
subElement.setDisplayStyle = this.setDisplayStyle;
}
};
nodes.getChildNodesByParent = function (parent) {
var childNodes = new Array();
if (parent + "" == ""){
return childNodes;
}
for (var i = 0; i < nodes.length; i++){
if (nodes[i][0] != undefined && nodes[i][0] == parent){
childNodes[childNodes.length] = nodes[i];
}
}
return childNodes;
} if(!isOnChange){
cascadeSelect.options.length = 0;
var defaultText = cascadeSelect.getAttr("defaultText");
var defaultValue = cascadeSelect.getAttr("defaultValue");
var selectedValue = cascadeSelect.getAttr("selectedValue"); if (defaultText != undefined && defaultValue != undefined){
cascadeSelect.options[cascadeSelect.options.length] = new Option(defaultText, defaultValue);
}
var childNodes = nodes.getChildNodesByParent(parent);
for (var i = 0; i < childNodes.length; i++){
cascadeSelect.options[cascadeSelect.options.length] = new Option(childNodes[i][1], childNodes[i][2]);
if (selectedValue != undefined && selectedValue == childNodes[i][2]){
cascadeSelect.selectedIndex = cascadeSelect.options.length - 1;
}
}
} if (cascadeSelect.options.length > 0){
cascadeSelect.setDisplayStyle("");
var subElement = cascadeSelect.getElementById(cascadeSelect.getAttr("subElement"));
if (subElement != undefined){
setupCascadeSelect(subElement, cascadeSelect.options[cascadeSelect.selectedIndex].value, nodes, false);
}
} else {
cascadeSelect.setDisplayStyle("none");
}
}
<script src="动态页面"></script>
在动态页里生成数据,如果数据比较稳定或比较大,可以直接生成一个js文件。
KimSoft,你现在找我的话,最好差不多十二点找我吧,现在看球精神着呢,还有mozilla的“htc”,现在也在写着,关于XBL语言有了解吗?有了解的话,也帮一把吧,毕竟看英文的参考很累的。:D
先BS百毒!!!!!99收藏夹
换新服务器拉
全站ajax开发
速度快的不得了哦
http://www.99scj.com
在线收藏,在线网摘,在线RSS。。