在我们前端的项目中,会经常用到radio单选按钮,下面给出个例子总结jquery对radio的各种操作:
示例如下:
<html> <head> <meta charset="UTF-8"> <title>radio </title> <script type="text/javascript" src="jquery-1.10.2.js"></script> </head> <body> <form> <input type="radio" name="city" checked="checked" value="BeiJing">北京 <input type="radio" name="city" value="TianJin">天津 <input type="radio" name="city" value="NanJing">南京 <input type="radio" name="city" value="YangZhou">扬州 <input type="radio" name="city" value="SuZhou">苏州 </form> </body> <html>
1、获取选中的radio的值:
$("input:radio[name='city']:checked").val(); 或者 ("input[type=radio][name='city']:checked").val();
使用元素选择器,再使用属性过滤器name='city',最后使用:checked选取被选中的元素。
2、给指定值的radio设置选中状态:
$("input:radio[name='city'][value='YangZhou']").attr("checked",true); 或者 $("input[type=radio][name='city'][value='YangZhou']").attr("checked",true);
注:很多时候我们更加value的值来选中对应的radio按钮,上面都是直接写死在代码里面,但是很多的时候,我们value是后台传过来的值,会存在一个变量里面,这个变量每次存的值不会一样。
例如:这个变量就叫做: Cityvalue
cityvalue是js用ajax从服务器请求过来的,比如cityvalue="TianJin";
如果我们直接把cityvalue写到里面是有错误的:
例如;
$("input[type=radio][name='city'][value=cityvalue]").attr("checked",true);
这样是错误的,我们可以在console上打印出这串字符串,看一下他的值是如下:
因为cityvalue在""里面,所以这个就是他本来的名字值,而他所代表的字符串并没有进去,所以我们不要把他放在双引号里面,因为cityvalue本来也是一个字符串,所以采用连接的方式+,变为
$("input[type=radio][name='city'][value="+cityvalue+"]").attr("checked",true);
这样是对的,但是我觉得要和上面一样得把:var cityvalue="'TianJin'",就是在里面加上单引号,这样拼成的字符串就和前面的一模一样了:
给name="city"而且value="YangZhou"的radio设置选中状态。
3、取消name="city"的radio的选中状态:
$('input[name="city"]:checked').attr("checked",false);
4、获取name="city"的radio的个数:
$("input[name='city']").length;
5、获取name="city"而且索引是偶数的radio:
$("input[name='city']:even");
索引是从0开始的。
6、获取name="city"而且索引是奇数的radio:
$("input[name='city']:odd");
索引是从0开始的。
7、迭代radio:
$("input[name='city']").each(function(i,obj){ //i,迭代的下标,从0开始 //obj,当前的对象(HTMLInputElement),可以使用obj.value格式获取属性值 //$(this);当前jQuery对象,可以使用$(this).val()获取属性值 });
迭代name="city"的radio。
8、禁用radio:
$("input[name='city']").attr("disabled",true);
禁用name="city"的radio。
9、启用radio:
$("input[name='city']").attr("disabled",false);
启用name="city"的radio。