操作select的jquery插件 (转)

 写了个操作select下拉框的jquery插件,以后再涉及select时,利用这个插件就简单多了。和大家分享一下代码:
   

//功能说明:本js文件为jquery类库的一个插件,主要实现对select的操作.
 
//得到select项的个数
jQuery.fn.size = function()
{
    return jQuery(this)[0].options.length;
}
//获得选中项的索引
jQuery.fn.getSelectedIndex = function()
{
    return jQuery(this)[0].selectedIndex;
}
//获得当前选中项的文本
jQuery.fn.getSelectedText = function()
{
    if(this.size() == 0)
    {
        return "下拉框中无选项";
    }
    else
    {
        var index = this.getSelectedIndex();      
        return jQuery(this)[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)[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)[0].options[i].text == text)
        {
            jQuery(this)[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)[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)[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)[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)[0].options[i].value == value)
            {
                jQuery(this)[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)[0].remove(index);
    }
}
//删除select中选定的项
jQuery.fn.removeSelected = function()
{
    var index = this.getSelectedIndex();
    this.removeIndex(index);
}
//清除select中的所有项
jQuery.fn.clearAll = function()
{
    jQuery(this)[0].options.length = 0;
}
//移动Select里的(选择的)Option到另一个F_SelectedName中 2009-04-13 XSC
jQuery.fn.fnMove = function()
{
    var count = this.size();
    for(var i=0;i<count;i++)
    {
        if(jQuery(this)[0].options[i].selected == true)
        {
            if(!$("#F_SelectedName").isExistItem(jQuery(this)[0].options[i].value))
            {
                $("#F_SelectedName").addOption(jQuery(this)[0].options[i].text,jQuery(this)[0].options[i].value);
            }
        }
    }
}

//删除所有选择的 Option 2009-04-13 XSC
jQuery.fn.fnRemoveSelect = function()
{
    var count = this.size();
    for(var i=0;i<count;i++)
    {
        if(jQuery(this)[0].options[i].selected == true)
        {
            removeIndex(jQuery(this)[0].options[i].Index);
        }
    }
}
//移动Select里的(全部)Option到另一个F_SelectedName中 2009-04-13 XSC
jQuery.fn.fnAddALLS = function()
{
    var count = this.size();
    for(var i=0;i<count;i++)
    {
        if(!$("#F_SelectedName").isExistItem(jQuery(this)[0].options[i].value))
        {
            $("#F_SelectedName").addOption(jQuery(this)[0].options[i].text,jQuery(this)[0].options[i].value);
        }
    }
}

    使用的时候先引入jquery.js文件,再引入jquery.liu.select.js文件,然后就可调用该插件的方法。比如,我要清除id为selEmail的下拉框中的所有项,那么我就可以这么操作:$("#selEmail").clearAll();
   说明:该插件中的方法在ie7和firefox中验证通过,有错误和需要改进的地方还希望大家批评指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值