jquery判断checkbox是否选中返回的是checked或者是undefined

$(‘#checkbox‘).attr(‘checked‘); 返回的是checked或者是undefined,不是原来的true和false了,有关此问题的解决方法如下

在JQ1.6之前的版本,我们会这样写我们的代码:

<input type=‘checkbox‘ id=‘cb‘/>

<script>   

//获取是否选中   
var isChecked = $(‘#cb‘).attr(‘checked‘);  

//设置选中   
$(‘#cb‘).attr(‘checked‘,true);   

</script>

这样写在JQ1.6之前完全没问题,可是当我们升级JQ1.6到更高的版本时,问题就来了,此时我们会发现: 
$(‘#cb‘).attr(‘checked‘); 返回的是checked或者是undefined,不是原来的true和false了。 并且checked属性在页面初始化的时候已经初始化好了,不会随着状态的改变而改变。所以如果checkbox一开始是选中的,那么返回的是checked,如果一开始没被选中,则返回的是undefined

<input type=‘checkbox‘ id=‘cb‘/>   

<script>   

//获取是否选中   
var isChecked = $(‘#cb‘).prop(‘checked‘);   

//或   
var isChecked = $(‘#cb‘).is(":checked");   

//设置选中   
$(‘#cb‘).prop(‘checked‘,true);   

</script>

分析了其中的原因,可以这样理解: 
它将“属性”与“特性”做了区别,属性指的是“name,id”等等,特性指的是“selectedIndex, tagName, nodeName”等等。 
JQ1.6之后,可以通过attr方法去获得属性,通过prop方法去获得特性

$("#cb").attr("tagName"); //undefined  

$("#cb").prop("tagName"); //INPUT
时间: 2024-10-28 10:48:53

jquery判断checkbox是否选中返回的是checked或者是undefined的相关文章

JQuery 判断checkbox是否选中,checkbox全选,获取checkbox选中值

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

jquery 判断checkbox 是否选中

这是一个蛋疼的节奏,以前写的代码现在失效了. jquery 判断checkbox 是否被选中,刚开始我是这样写的,而且没问题 $("#ziduana").attr("checked")=="checked" 后来竟然失效了, 后来试了 $("ziduana").attr("checked")==true  , $("#ziduana").is(":checked")

JQuery判断checkbox是否选中-批量

在html的checkbox里,选中的话会有属性checked="checked". 如果用一个checkbox被选中,alert这个checkbox的属性"checked"的值alert($"#xxx".attr("checked")),会打印出"true",而不是"checked"! 如果没被选中,打印出的是"undefined".觉得很奇怪是吗?继续看下去- 不

jquery判断checkbox是否选中及改变checkbox状态

来自:http://www.wufangbo.com/jquery-pan-duan-checked/ jquery判断checked的三种方法: .attr(‘checked’):   //看版本1.6+返回:”checked”或”undefined” ;1.5-返回:true或false.prop(‘checked’): //16+:true/false.is(‘:checked’):    //所有版本:true/false//别忘记冒号哦 jquery赋值checked的几种写法: 所有

jquery判断checkbox是否选中及改变checkbox状态[转]

jquery判断checked的三种方法: .attr('checked): //看版本1.6+返回:”checked”或”undefined” ;1.5-返回:true或false .prop('checked'): //16+:true/false .is(':checked'): //所有版本:true/false//别忘记冒号哦 jquery赋值checked的几种写法: 所有的jquery版本都可以这样赋值: // $("#cb1").attr("checked&q

jquery判断checkbox是否选中及改变checkbox状态(转)

jquery判断checked的三种方法:.attr('checked):   //看版本1.6+返回:”checked”或”undefined” ;1.5-返回:true或false.prop('checked'): //16+:true/false.is(':checked'):    //所有版本:true/false//别忘记冒号哦jquery赋值checked的几种写法:所有的jquery版本都可以这样赋值:// $("#cb1").attr("checked&qu

jQuery判断checkbox是否选中

$('#chkId').attr('checked')目前测试情况是无法判断的: $('#chkId').get(0).checked 当前可以判断: 需要验证的方法: http://www.jb51.net/article/53599.htm 方法一:if ($("#checkbox-id")get(0).checked) {    // do something} 方法二:if($('#checkbox-id').is(':checked')) {    // do somethi

jquery 判断checkbox是否选中几个版本的区别

$('#checkbox1').prop('checked') - in jQuery 1.6+, usually the way to go $('#checkbox1').is(':checked') - all jQuery versions, but slower $('#checkbox1').attr('checked') - NOT in jQuery 1.6 - but in 1.6.1 and <=1.5, don't use it

jQuery判断checkbox是否选中的3种方法

方法二(建议) 方法一: if ($("#checkbox-id")get(0).checked) { // do something } 方法二: if($('#checkbox-id').is(':checked')) { // do something } 方法三: if ($('#checkbox-id').attr('checked')) { // do something }