Posted in Javascript onAugust 17, 2009
和大家分享一下代码:
JavaScript代码
//得到select项的个数 jQuery.fn.size = function() { return jQuery(this).get(0).options.length; } //获得选中项的索引 jQuery.fn.getSelectedIndex = function() { return jQuery(this).get(0).selectedIndex; } //获得当前选中项的文本 jQuery.fn.getSelectedText = function() { if(this.size() == 0) { return "下拉框中无选项"; } else { var index = this.getSelectedIndex(); return jQuery(this).get(0).options[index].text; } } //获得当前选中项的值 jQuery.fn.getSelectedValue = function() { if(this.size() == 0) { return "下拉框中无选中值"; } else { return jQuery(this).val(); } } //设置select中值为value的项为选中 jQuery.fn.setSelectedValue = function(value) { jQuery(this).get(0).value = value; } //设置select中文本为text的第一项被选中 jQuery.fn.setSelectedText = function(text) { var isExist = false; var count = this.size(); for(var i=0;i<count;i++) { if(jQuery(this).get(0).options[i].text == text) { jQuery(this).get(0).options[i].selected = true; isExist = true; break; } } if(!isExist) { alert("下拉框中不存在该项"); } } //设置选中指定索引项 jQuery.fn.setSelectedIndex = function(index) { var count = this.size(); if(index >= count || index < 0) { alert("选中项索引超出范围"); } else { jQuery(this).get(0).selectedIndex = index; } } //判断select项中是否存在值为value的项 jQuery.fn.isExistItem = function(value) { var isExist = false; var count = this.size(); for(var i=0;i<count;i++) { if(jQuery(this).get(0).options[i].value == value) { isExist = true; break; } } return isExist; } //向select中添加一项,显示内容为text,值为value,如果该项值已存在,则提示 jQuery.fn.addOption = function(text,value) { if(this.isExistItem(value)) { alert("待添加项的值已存在"); } else { jQuery(this).get(0).options.add(new Option(text,value)); } } //删除select中值为value的项,如果该项不存在,则提示 jQuery.fn.removeItem = function(value) { if(this.isExistItem(value)) { var count = this.size(); for(var i=0;i<count;i++) { if(jQuery(this).get(0).options[i].value == value) { jQuery(this).get(0).remove(i); break; } } } else { alert("待删除的项不存在!"); } } //删除select中指定索引的项 jQuery.fn.removeIndex = function(index) { var count = this.size(); if(index >= count || index < 0) { alert("待删除项索引超出范围"); } else { jQuery(this).get(0).remove(index); } } //删除select中选定的项 jQuery.fn.removeSelected = function() { var index = this.getSelectedIndex(); this.removeIndex(index); } //清除select中的所有项 jQuery.fn.clearAll = function() { jQuery(this).get(0).options.length = 0; }
使用的时候先引入jquery.js文件,再引入jquery.liu.select.js文件,然后就可调用该插件的方法。比如,我要清除id为selEmail的下拉框中的所有项,那么我就可以这么操作:$("#selEmail").clearAll();
说明:该插件中的方法在ie7和firefox中验证通过,有错误和需要改进的地方还希望大家批评指正。
jQuery select控制插件
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@