写了个操作select的jquery插件

    昨天写了个操作select下拉框的jquery插件,以后再涉及select时,利用这个插件就简单多了。和大家分享一下代码:
   
/*
文件名:jquery.liu.select.js
功能说明:本js文件为jquery类库的一个插件,主要实现对select的操作.
作者:John Liu
编写日期:2008/03/12
*/

//得到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中验证通过,有错误和需要改进的地方还希望大家批评指正。
posted @ 2008-03-13 09:28  John Liu  阅读(8728)  评论(10编辑  收藏  举报