jquery操作select(取值,設定選中)

風靈使發表於2018-12-30

最近工作中總出現selectoption問題,整理一下,內容大部分源於網路資料

一、基礎取值問題

例如<select class="selector"></select>

1、設定valuepxx的項選中

     $(".selector").val("pxx");

2、設定textpxx的項選中

    $(".selector").find("option:contains('pxx')").attr("selected",true);

注意:之前$(".selector").find("option[text='pxx']").attr("selected",true);這種寫法是錯誤的,目前個人證實input支援這種獲取屬性值的寫法:"input[text='pxx']",select中需要"option:contains('pxx')"這樣獲取。

這裡有一箇中括號的用法,中括號裡的等號的前面是屬性名稱,不用加引號。很多時候,中括號的運用可以使得邏輯變得很簡單。

3、獲取當前選中項的value

    $(".selector").val();

4、獲取當前選中項的text

    $(".selector").find("option:selected").text();

這裡用到了冒號,掌握它的用法並舉一反三也會讓程式碼變得簡潔。

二、很多時候用到select的級聯,即第二個select的值隨著第一個select選中的值變化。這在jquery中是非常簡單的。

如:

$(".selector1").change(function(){
    // 先清空第二個
    $(".selector2").empty();
    // 實際的應用中,這裡的option一般都是用迴圈生成多個了
    var option = $("<option>").val(1).text("pxx");
    $(".selector2").append(option);
});

三、jQuery獲取Select選擇的TextValue:

語法解釋:

1. $("#select_id").change(function(){//code...});   //為Select新增事件,當選擇其中一項時觸發

2. var checkText=$("#select_id").find("option:selected").text();  //獲取Select選擇的Text

3. var checkValue=$("#select_id").val();  //獲取Select選擇的Value

4. var checkIndex=$("#select_id ").get(0).selectedIndex;  //獲取Select選擇的索引值

5. var maxIndex=$("#select_id option:last").attr("index");  //獲取Select最大的索引值

四、jQuery設定Select選擇的 TextValue:

語法解釋:

$("#select_id ").get(0).selectedIndex=1;  //設定Select索引值為1的項選中
$("#select_id ").val(4);   // 設定Select的Value值為4的項選中
$("#select_id option[text='jQuery']").attr("selected", true);   //設定Select的Text值為jQuery的項選中

五、jQuery新增/刪除SelectOption項:

語法解釋:

1. $("#select_id").append("<option value='Value'>Text</option>");  //為Select追加一個Option(下拉項)
2. $("#select_id").prepend("<option value='0'>請選擇</option>");  //為Select插入一個Option(第一個位置)
3. $("#select_id option:last").remove();  //刪除Select中索引值最大Option(最後一個)
4. $("#select_id option[index='0']").remove();  //刪除Select中索引值為0的Option(第一個)
5. $("#select_id option[value='3']").remove();  //刪除Select中Value='3'的Option
5. $("#select_id option[text='4']").remove();  //刪除Select中Text='4'的Option

六、jquery radio取值,checkbox取值,select取值,radio選中,checkbox選中,select選中,及其相關

  1. 獲取一組radio被選中項的值
var item = $('input[name=items][checked]').val(); 
  1. 獲取select被選中項的文字
var item = $("select[name=items] option[selected]").text();
  1. select下拉框的第二個元素為當前選中值
$('#select_id')[0].selectedIndex = 1; 
  1. radio單選組的第二個元素為當前選中值
$('input[name=items]').get(1).checked = true; 

七、獲取值:

文字框,文字區域:$("#txt").attr("value");
多選框 checkbox$("#checkbox_id").attr("value");
單選組radio$("input[type=radio][checked]").val();
下拉框select$('#sel').val();

八、控制表單元素:

文字框,文字區域:

$("#txt").attr("value",'');//清空內容 
$("#txt").attr("value",'11');//填充內容 

多選框checkbox

$("#chk1").attr("checked",'');//不打勾 
$("#chk2").attr("checked",true);//打勾 
if($("#chk1").attr('checked')==undefined) //判斷是否已經打勾 

單選組 radio

$("input[type=radio]").attr("checked",'2');//設定value=2的專案為當前選中項 

下拉框 select

$("#sel").attr("value",'-sel3');//設定value=-sel3的專案為當前選中項 
$("<option value='1'>1111</option><option value='2'>2222</option>").appendTo("#sel")//新增下拉框的option 

$("#sel").empty()//清空下拉框

注意點

select option如果裡面不寫value值,預設提交<option></option>中間的值。

切記:真正提交的值是在value屬性裡面,option之間只是按鈕文字而已

相關文章