|
主题: 关于处理列表/菜单框操作的几个小函数,希望有用。
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#12005/4/4 22:47:28
好些日子没来了。最近做客户端时,要动态处理列表框,写了一些还算比较有用的小函数,与大家共享。
//在末尾添加一项 function addOption(objSel,text,value){ var opt=new Option(); opt.text=text; opt.value=value; objSel.options.add(opt); }
//在指定位置插入一项 function insertOption(objSel,text,value,pos){ var opt=new Option(); opt.text=text; opt.value=value; objSel.options.add(opt,pos); }
//删除指定项 function delOption(objSel,text,value){ for(var i=0;i<objSel.options.length;i++){ if(objSel.options[i].text==text && objSel.options[i].value==value){ objSel.remove(i); break; } } }
//删除所选项 function delOptions(objSel){ if(objSel.selectedIndex!=-1){ do{ objSel.options.remove(objSel.selectedIndex); }while(objSel.selectedIndex!=-1); } }
//删除所有项 function clearOptions(objSel){ objSel.options.length=0; }
//向上移动所选项 function moveupOptions(objSel){ if(objSel.selectedIndex!=-1){ addOption(objSel,"","diff"); for(var i=0;i<objSel.options.length-1;i++){ if(objSel.options[i].selected==true){ var newpos=i-1; if(newpos<0)newpos=objSel.options.length-1; objSel.options[i].swapNode(objSel.options[newpos]); } } delOption(objSel,"","diff"); } }
//向下移动所选项 function movedownOptions(objSel){ if(objSel.selectedIndex!=-1){ insertOption(objSel,"","diff",0); for(var i=objSel.options.length-1;i>0;i--){ if(objSel.options[i].selected==true){ var newpos=i+1; if(newpos>objSel.options.length-1)newpos=0; objSel.options[i].swapNode(objSel.options[newpos]); } } delOption(objSel,"","diff"); } }
缩进没有了,对付着看吧。
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#22005/4/4 22:51:11
函数说明(支持多选择):
addOption(objSel,text,value):在列表/菜单框 objSel 末尾添加一项,其值为 value,显示文本为 text。 insertOption(objSel,text,value,pos):在列表/菜单框 objSel 指定位置 pos 处插入一项,其值为 value,显示文本为 text。 delOption(objSel,text,value):删除列表/菜单框 objSel 中值为 value、显示文本为 text 的项。 delOptions(objSel):删除列表/菜单框 objSel 中选中的项。 clearOptions(objSel):清空(删除)列表/菜单框 objSel 中的所有项。 moveupOptions(objSel):向上移动列表/菜单框 objSel 中选中的项。 movedownOptions(objSel):向下移动列表/菜单框 objSel 中选中的项。
移动选项时,使用了交换节点函数:swapNode()。为了支持多选移动,先临时增加了一个option项,完成操作后再删除这个临时项。
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#32005/4/4 23:12:14
使用示例:
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
|