[轉貼] jQuery對select tag的操作

2012073114:38
出處:http://kevyu.blogspot.tw/2008/03/jqueryselect.html

  • get
    • 取出選擇的值
      $("select#Club").val();
      $('select#Club option:selected').text();
      以上2方法在單選時相同,但複選時,
      val()會用逗號分開 ex. AA, BB
      text()不會 ex. AABB
    • 取出array
      $("select#Club").children("[@selected]").each(function(){
          alert(this.text());
      });
  • set
    • 使某option變為selected
      $("#select1").children().each(function(){
          if ($(this).text()=="option you want"){
              //jQuery給法
              $(this).attr("selected","true"); //或是給selected也可
       
              //javascript給法
              this.selected = true;  
          }
      });
    • 讓新增的option直接為selected
      var option = jQuery("new option");
      $('select#Club').append(option);
      $(option).attr("selected","true"); //讓option為selected
      $('select#Club').trigger("change");   //最後要觸發select的change事件
    • select下拉框的第二個元素為當前選中值
      $('select#Club)[0].selectedIndex = 1;//不知為何要加[0]
      =========== K. T. Chen 提到 ==========================
      在$("")加[0]的意思是把jQuery物件轉為DOM物件。這樣子jQuery物件才能使用DOM底下的selectedIndex方法。
  • event
    //改變時的事件
    $("select#Club").change(function(){ //事件發生
        //一次印出
        alert($(this).val());
     
        //印出選到多個值
        jQuery('option:selected', this).each(function(){
            alert(this.value); 
        });
    });
  • 移除 removeOption(index/value/regex[, selectedOnly])
    $('select#Clubs option:selected').remove();

*************************************************************************************************************

出處:http://www.oschina.net/code/snippet_246199_12844

1.判断select选项中 是否存在Value="paraValue"的Item
    $("#selectid option[value='paraValue']").length>0
2.向select选项中 加入一个Item
    $("#selectid").append("<option value=''>1111<option>");
3.从select选项中 删除一个Item
    $("#selectid").remove("<option value=''>1111<option>");
4.修改select选项中 value="paraValue"的text为"paraText"
    $("#selectid option:selected").attr("value","paraValue").attr("text","paraText");
5. 设置select中text="paraText"的第一个Item为选中
    $("#selectid option[text='paraText']").attr("selected","true")
6.设置select中 value="paraValue"的Item为选中
    $("#selectid option[value='paraValue']").attr("selected","true")
7.设置select中第一 个Item为选中
    $("#selectid option").eq(0).attr('selected', 'true');
8. 得到select的当前选中项的value
    $("#selectid").val();
9.得到select的当前选中项的text
    $("#selectid").text();
10. 得到select的当前选中项的Index
    document.getElementById("select1").selectedIndex;
    $("#selectid").get(0).selectedIndex;
11. 清空select的项
    $("#selectid").empty();

JS版本的:

//1.判断select选项中 是否存在Value="paraValue"的Item  
function jsSelectIsExitItem(objSelect,objItemValue)  
{  
     var isExit = false ;  
     for ( var i=0;i;I++)  
     {  
         if (objSelect.options[i].value == objItemValue)  
         {  
             isExit = true ;  
             break ;  
         }  
     }       
     return isExit;  
}  
 
//2.向select选项中 加入一个Item  
function jsAddItemToSelect(objSelect,objItemText,objItemValue, objItemPos)  
{  
     //判断是否存在  
     if (jsSelectIsExitItem(objSelect,objItemValue))  
     {  
         alert( "该Item的 Value值已经存在" );  
     }  
     else  
     {  
         var varItem = new Option(objItemText,objItemValue);  
//       objSelect.options[objSelect.options.length] = varItem;  
         objSelect.options.add(varItem, objItemPos);  
         alert( "成功加入" );  
     }     
}  
 
//3.从select选项中 删除一个Item  
function jsRemoveItemFromSelect(objSelect,objItemValue)  
{  
     //判断是否存在  
     if (jsSelectIsExitItem(objSelect,objItemValue))  
     {  
         for ( var i=0;i;I++)  
         {  
             if (objSelect.options[i].value == objItemValue)  
             {  
                 objSelect.options.remove(i);  
                 break ;  
             }  
         }         
         alert( "成功删除" );             
     }  
     else  
     {  
         alert( "该 select中 不存在该项" );  
     }     
}  
 
//4.修改select选项中 value="paraValue"的text为"paraText"  
function jsUpdateItemToSelect(objSelect,objItemText,objItemValue)  
{  
     //判断是否存在  
     if (jsSelectIsExitItem(objSelect,objItemValue))  
     {  
         for ( var i=0;i;I++)  
         {  
             if (objSelect.options[i].value == objItemValue)  
             {  
                 objSelect.options[i].text = objItemText;  
                 break ;  
             }  
         }         
         alert( "成功修改" );             
     }  
     else  
     {  
         alert( "该 select中 不存在该项" );  
     }     
}  
         
//5.设置select中text="paraText"的第一个 Item为选中  
function jsSelectItemByValue(objSelect,objItemText)  
{     
     //判断是否存在  
     var isExit = false ;  
     for ( var i=0;i;I++)  
     {  
         if (objSelect.options[i].text == objItemText)  
         {  
             objSelect.options[i].selected = true ;  
             isExit = true ;  
             break ;  
         }  
     }       
     //Show出结果  
     if (isExit)  
     {  
         alert( "成功选中" );             
     }  
     else  
     {  
         alert( "该 select中 不存在该项" );  
     }     
}  
 
//6.设置select中value="paraValue"的Item 为选中  
document.all.objSelect.value = objItemValue;  
 
//7.得到select的当前选中项的value  
var currSelectValue = document.all.objSelect.value;  
 
//8.得到select的当前选中项的text  
var currSelectText = document.all.objSelect.options[document.all.objSelect.selectedIndex].text;  
 
//9.得到select的当前选中项的Index  
var currSelectIndex = document.all.objSelect.selectedIndex;  
 
//10.清空select的项  
document.all.objSelect.options.length = 0;