jQuery select控制插件

  和大家分享一下代码:

  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中验证通过,有错误和需要改进的地方还希望大家批评指正。