Jquery操作Select內的項目 - 總結

//=================================
    //操作Select內的項目(操作類型,對象id,值)

//如果要轉載本文請注明出處,免的出現版權紛爭,我不喜歡看到那種轉載了我的作品卻不注明出處的人 Seven{See7di#Gmail.com}

    $.sel = function(Typ,Id,Val){
        switch (Typ.toLowerCase()){
        case "len":            //得到select项的元素个数[Typ,Id]:$.sel('len','id')
            return $("#"+Id).get(0).options.length;
            break;
        case "index":        //获得选中项的索引[Typ,Id]:$.sel('index','id')
            return $("#"+Id).get(0).selectedIndex;
            break;
        case "val":            //取得當前value值[Typ,Id]:$.sel('val','id')
            return $("#"+Id).val();
            break;
        case "isval":        //判斷是否存在某value值[Typ,Id,Val]:$.sel('isval','id','value')
            var len = $("#"+Id).get(0).options.length;
            for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].value == Val){return true;break;}}
            return false;break;
        case "indexval":    //取得索引值上的value值[Typ,Id,Val]:$.sel('isval','id','value')
            return $("#"+Id+" option:eq("+Val+")").val();
            break;
        case "allval":        //取得所有的value值[Typ,Id,Val]:$.sel('allval','id','|')
            var len = $("#"+Id).get(0).options.length;_val='';
            for(var i=0;i<len;i++){_val+=Val+$("#"+Id).get(0).options[i].value;}
            return _val+Val;
            break;
        case "txt":            //取得當前text值[Typ,Id]:$.sel('txt','id')
            return $("#"+Id).get(0).options[$("#"+Id).get(0).selectedIndex].text;
            break;
        case "istxt":        //判斷是否存在某text值[Typ,Id,Val]:$.sel('isval','id','value')
            var len = $("#"+Id).get(0).options.length;
            for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].text == Val){return true;break;}}
            return false;break;
        case "alltxt":        //取得所有的value值[Typ,Id,Val]:$.sel('alltxt','id','|')
            var len = $("#"+Id).get(0).options.length;_val='';
            for(var i=0;i<len;i++){_val+=Val+$("#"+Id).get(0).options[i].text;}
            return _val+Val;
            break;
        case "add":            //添加项目[Typ,Id,Val]:$.sel('add','id','<option value=33>请选择</option>')
            $("#"+Id).prepend(Val);
            break;
        case "insert":        //在指定位置插入项目[Typ,Id,Val]:$.sel('insert','id','<option value=33>请选择</option>')
            $("#"+Id+" option:selected").before(Val);$("#"+Id).get(0).selectedIndex = ($("#"+Id).get(0).selectedIndex-1);
            break;
        case "del_ins":        //將id前半段的內容移動到id後半段的選中位置之前(被操作項目必須有默認選擇項)[Typ,Id]:$.sel('del_ins','id1|id2')
            var Arr=new Array();Arr=Id.split("|");
            if(!$("#"+Arr[0]+" option:selected").val() || !$("#"+Arr[0]+" option:selected").text()){return;}
            Val="<option value='"+$("#"+Arr[0]+" option:selected").val()+"'>"+$("#"+Arr[0]+" option:selected").text()+"</option>";
            oi=$("#"+Arr[0]).get(0).selectedIndex;
            $("#"+Arr[0]+" option:selected").remove();
            $("#"+Arr[0]).get(0).selectedIndex = (oi-1<0)?0:(oi-1);
            if($("#"+Arr[1]+"").get(0).options.length<1 || $("#"+Arr[1]).get(0).selectedIndex<0){
                $("#"+Arr[1]+"").prepend(Val);
                $("#"+Arr[1]).get(0).selectedIndex = 0;
            }else{
                $("#"+Arr[1]+" option:selected").before(Val);
                $("#"+Arr[1]).get(0).selectedIndex = ($("#"+Arr[1]).get(0).selectedIndex-1);
            }
            break;
        case "selindex":    //預設某項為選中(參照索引值)[Typ,Id,Val]:$.sel('selindex','id','index')
            $("#"+Id).get(0).selectedIndex = Val;
            break;
        case "selval":        //預設某項為選中(參照Value的值)[Typ,Id,Val]:$.sel('selval','id','value')
            $("#"+Id).get(0).value=Val;
            break;
        case "seltxt":        //預設某項為選中(參照Text的值)[Typ,Id,Val]:$.sel('seltxt','id','text')
            var len = $("#"+Id).get(0).options.length;
            for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].text == Val){$("#"+Id).get(0).options[i].selected = true;break;}}
            break;
        case "selall":        //選擇全部[Typ,Id]:$.sel('selall','id')
            var len = $("#"+Id).get(0).options.length;
            for(var i=0;i<len;i++){$("#"+Id).get(0).options[i].selected = true;}
            break;
        case "delindex":    //刪除單個(參照索引值)[Typ,Id,Val]:$.sel('delindex','id','index')
            $("#"+Id).get(0).remove(Val);
            break;
        case "delval":        //刪除單個(參照Value的值)[Typ,Id,Val]:$.sel('delval','id','value')
            $("#"+Id+" option[value='"+Val+"']").remove();
            break;
        case "deltxt":        //刪除單個(參照Text的值)[Typ,Id,Val]:$.sel('deltxt','id','text')
            var len = $("#"+Id).get(0).options.length;
            for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].text == Val){$("#"+Id).get(0).remove(i);break;}}
            break;
        case "delselected":    //刪除單個(被選中的對象)[Typ,Id]:$.sel('delselected','id')
            $("#"+Id+" option:selected").remove();
            break;
        case "delall":        //刪除全部
            $("#"+Id).get(0).options.length = 0 ;
            break;
        }
    }

posted @ 2011-05-05 06:08  已經停更  阅读(282)  评论(0编辑  收藏  举报