jquery的checkbox,radio,select等方法总结

By柏小白

jquery的checkbox,radio,select等方法总结

jquery的checkbox,radio,和select是jquery操作的一个难点和重点,很多前端新手对其了解不是很透彻。时间久了不用,我在写的时候有时也难免对某些操作支支吾吾,记不清楚,现在,对其做一些简单的总结!

1、checkbox日常jquery操作。

现在我们以下面的html为例进行checkbox的操作。

<input id="checkAll" type="checkbox" />全选
<input name="subBox" type="checkbox" />项1
<input name="subBox" type="checkbox" />项2
<input name="subBox" type="checkbox" />项3
<input name="subBox" type="checkbox" />项4

全选和全部选代码:

<script type="text/javascript">
    $(function (){
        $("#checkAll").click(function (){
            $('input[name="subBox"]').attr("checked", this.checked);
        });
        var $subBox = $("input[name='subBox']");
        $subBox.click(function (){
            $("#checkAll").attr("checked", $subBox.length == $("input[name='subBox']:checked").length ? true : false);
        });
    });
</script>

checkbox属性:

// 获取指定id的复选框的值 
var val = $("#checkAll").val();

// 判断id=checkAll的那个复选框是否处于选中状态,选中则isSelected=true;否则isSelected=false; 
var isSelected = $("#checkAll").attr("checked");

// or 
$("#checkAll").attr("checked", true);

// 将id=checkbox_id3的那个复选框选中,即打勾 
$("#checkAll").attr("checked", 'checked');

// or 
$("#checkAll").attr("checked", false);

// 将id=checkbox_id3的那个复选框不选中,即不打勾 
$("#checkAll").attr("checked", '');

$("input[name=subBox][value=3]")
        // 将name=subBox, value=3 的那个复选框选中,即打勾 
       .attr("checked", 'checked');

$("input[name=subBox][value=3]")
          // 将name=subBox, value=3 的那个复选框不选中,即不打勾 
         .attr("checked", '');

$("input[type=checkbox][name=subBox]")
          // 设置index = 2,即第三项为选中状态 
         .get(2).checked = true;

$("input[type=checkbox]:checked").each(function (){
        //由于复选框一般选中的是多个,所以可以循环输出选中的值  
    alert($(this).val());
});

2、radio的jquery日常操作及属性

我们仍然以下面的html为例:

<input type="radio" name="radio" id="radio1" value="1" />1
<input type="radio" name="radio" id="radio2" value="2" />2
<input type="radio" name="radio" id="radio3" value="3" />3
<input type="radio" name="radio" id="radio4" value="4" />4

radio操作如下:

$("input[name=radio]:eq(0)").attr("checked", 'checked'); //这样就是第一个选中咯。
//jquery中,radio的选中与否和checkbox是一样的。

$("#radio1").attr("checked", "checked");

$("#radio1").removeAttr("checked");

$("input[type='radio'][name='radio']:checked").length == 0 ? "没有任何单选框被选中" : "已经有选中";

// 获取一组radio被选中项的值 
$('input[type="radio"][name="radio"]:checked').val(); 

// 设置value = 2的一项为选中 
$("input[type='radio'][name='radio'][value='2']").attr("checked", "checked");

 // 设置id=radio2的一项为选中 
$("#radio2").attr("checked", "checked");

// 设置index = 1,即第二项为当前选中 
$("input[type='radio'][name='radio']").get(1).checked = true; 

// id=radio2的一项处于选中状态则isChecked = true, 否则isChecked = false; 
var isChecked = $("#radio2").attr("checked");

 // value=2的一项处于选中状态则isChecked = true, 否则isChecked = false;
var isChecked = $("input[type='radio'][name='radio'][value='2']").attr("checked");

3、select下拉框的日常jquery操作

select操作相比checkbox和radio要相对麻烦一些,我们仍然以下面的html为例来说明:

<select name="select" id="select_id" style="width: 100px;">
    <option value="1">11</option>
    <option value="2">22</option>
    <option value="3">33</option>
    <option value="4">44</option>
    <option value="5">55</option>
    <option value="6">66</option>
</select>

看select的如下属性:

 // 1.为Select添加事件,当选择其中一项时触发 
$("#select_id").change(function(){                        
    //code...  
});
 // 2.获取Select选中项的Value 
var checkValue = $("#select_id").val();   
   
// 3.获取Select选中项的Text              
var checkText = $("#select_id :selected").text();   
  
// 4.获取Select选中项的索引值,或者:$("#select_id").get(0).selectedIndex;      
var checkIndex = $("#select_id").attr("selectedIndex");   

 // 5.获取Select最大的索引值 
var maxIndex =$("#select_id :last").get(0).index;      
/**
 * jQuery设置Select的选中项
 */
// 1.设置Select索引值为1的项选中 

$("#select_id").get(0).selectedIndex = 1;   
  
 // 2.设置Select的Value值为4的项选中              
$("#select_id").val(4);                                   
/**
 * jQuery添加/删除Select的Option项
 */
// 1.为Select追加一个Option(下拉项) 
$("#select_id").append("<option value='新增'>新增option</option>");    

// 2.为Select插入一个Option(第一个位置) 
$("#select_id").prepend("<option value='请选择'>请选择</option>");  

 // 3.删除Select中索引值为1的Option(第二个)  
$("#select_id").get(0).remove(1); 

// 4.删除Select中索引值最大Option(最后一个)                                      
$("#select_id :last").remove();  

 // 5.删除Select中Value='3'的Option                                         
$("#select_id [value='3']").remove();                                 
$("#select_id").empty();

$("#select_id").find("option:selected").text(); // 获取select 选中的 text :

$("#select_id").val(); // 获取select选中的 value:

$("#select_id").get(0).selectedIndex; // 获取select选中的索引:


//设置select 选中的value:
$("#select_id").attr("value","Normal");
$("#select_id").val("Normal");
$("#select_id").get(0).value = value;

//设置select 选中的text,通常可以在select回填中使用
var numId=33 //设置text==33的选中!
var count=$("#select_id  option").length;
for(var i=0;i<count;i++)
{           if($("#select_id").get(0).options[i].text == numId)
{
    $("#select_id").get(0).options[i].selected = true;
    break;
}
}

通过上面的总结,应该对jquery的checkbox,radio和select有了一定的了解了吧,温故而知新,用多了就会变的熟练起来,即使有时候忘记了,也可以来翻一翻!

About the author

柏小白 administrator