$('#checkbox').attr('checked'); 返回的是checked或者是undefined解决办法
2014-06-05 18:01
405 查看
$('#checkbox').attr('checked'); 返回的是checked或者是undefined,不是原来的true和false了,有关此问题的解决方法如下
在JQ1.6之前的版本,我们会这样写我们的代码:
[javascript] view
plaincopy
<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
[javascript] view
plaincopy
<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方法去获得特性
[javascript] view
plaincopy
$("#cb").attr("tagName"); //undefined
$("#cb").prop("tagName"); //INPUT
转载地址:/article/8168694.html
在JQ1.6之前的版本,我们会这样写我们的代码:
[javascript] view
plaincopy
<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
[javascript] view
plaincopy
<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方法去获得特性
[javascript] view
plaincopy
$("#cb").attr("tagName"); //undefined
$("#cb").prop("tagName"); //INPUT
转载地址:/article/8168694.html
相关文章推荐
- $('#checkbox').attr('checked'); 返回的是checked或者是undefined解决办法
- $('#checkbox').attr('checked'); 返回的是checked或者是undefined解决办法
- $('#checkbox').attr('checked'); 返回的是checked或者是undefined解决办法
- $('#checkbox').attr('checked'); 返回的是checked或者是undefined解决办法
- jQuery获取checkbox状态时attr('checked')返回undefined的问题
- $('#checkbox').attr('checked'); 返回的是checked或者是undefined解决办法
- $('#checkbox').attr('checked'); 回报checked或undefined该解决方案
- checkbox的attr("checked")一直以来,undefined问题解决
- $('#checkbox').attr('checked'); 回报checked或undefined该解决方案
- $("#").attr("checked")获取的值是undefined的解决办法
- Jquery获取checkbox一直返回undefined的解决办法
- Jquery 版本兼容性 attr("checked") 返回undefined或失效
- php编译时undefined reference to `libiconv_open'解决办法
- undefined reference to `***@***'解决办法
- 编译Ralink SDK时碰到的奇怪错误(undefined reference to `main')的解决办法
- cocos2d-x发生undefined reference to `XX'异常 一劳永逸解决办法
- 解决checkbox的attr(checked)一直为undefined问题
- android Failed to install *.apk on device 'emulator-5554' timeout 或者 the user data image is used解决办法
- SQL数据库还原时错误:操作系统返回了错误 '5(拒绝访问)'的解决办法
- Jquery 版本兼容 attr("checked") 返回undefined 获取选中失效