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;
}
}