Jquery attr("checked") 返回checked或undefined 獲取選中失效
更新時間:2013年10月10日 16:46:20 作者:
$('#cb').attr('checked'); 返回的是checked或者是undefined,不是原來的true和false了,有關此問題的解決方法如下,感興趣的朋友可以參考下
假設我們現在需要這樣的場景:頁面上有一個checkbox,我們期望通過Jquery來獲得它是否選中,或者通過Jquery來讓它被選中。
在JQ1.6之前的版本,我們會這樣寫我們的代碼:
<input type='checkbox' id='cb'/>
<script>
//獲取是否選中
var isChecked = $('#cb').attr('checked');
//設置選中
$('#cb').attr('checked',true);
</script>
這樣寫在JQ1.6之前完全沒問題,可是當我們升級JQ1.6到更高的版本時,問題就來了,此時我們會發(fā)現:
$('#cb').attr('checked'); 返回的是checked或者是undefined,不是原來的true和false了。
并且checked屬性在頁面初始化的時候已經初始化好了,不會隨著狀態(tài)的改變而改變。所以如果checkbox一開始是選中的,那么返回的是checked,如果一開始沒被選中,則返回的是undefined。
解決的方法是:
<input type='checkbox' id='cb'/>
<script>
//獲取是否選中
var isChecked = $('#cb').prop('checked');
//或
var isChecked = $('#cb').is(":checked");
//設置選中
$('#cb').prop('checked',true);
</script>
分析了其中的原因,可以這樣理解:
它將“屬性”與“特性”做了區(qū)別,屬性指的是“name,id”等等,特性指的是“selectedIndex, tagName, nodeName”等等。
JQ1.6之后,可以通過attr方法去獲得屬性,通過prop方法去獲得特性
$("#cb").attr("tagName"); //undefined
$("#cb").prop("tagName"); //INPUT
在JQ1.6之前的版本,我們會這樣寫我們的代碼:
復制代碼 代碼如下:
<input type='checkbox' id='cb'/>
<script>
//獲取是否選中
var isChecked = $('#cb').attr('checked');
//設置選中
$('#cb').attr('checked',true);
</script>
這樣寫在JQ1.6之前完全沒問題,可是當我們升級JQ1.6到更高的版本時,問題就來了,此時我們會發(fā)現:
$('#cb').attr('checked'); 返回的是checked或者是undefined,不是原來的true和false了。
并且checked屬性在頁面初始化的時候已經初始化好了,不會隨著狀態(tài)的改變而改變。所以如果checkbox一開始是選中的,那么返回的是checked,如果一開始沒被選中,則返回的是undefined。
解決的方法是:
復制代碼 代碼如下:
<input type='checkbox' id='cb'/>
<script>
//獲取是否選中
var isChecked = $('#cb').prop('checked');
//或
var isChecked = $('#cb').is(":checked");
//設置選中
$('#cb').prop('checked',true);
</script>
分析了其中的原因,可以這樣理解:
它將“屬性”與“特性”做了區(qū)別,屬性指的是“name,id”等等,特性指的是“selectedIndex, tagName, nodeName”等等。
JQ1.6之后,可以通過attr方法去獲得屬性,通過prop方法去獲得特性
復制代碼 代碼如下:
$("#cb").attr("tagName"); //undefined
$("#cb").prop("tagName"); //INPUT
您可能感興趣的文章:
- jquery中prop()方法和attr()方法的區(qū)別淺析
- jquery獲取自定義屬性(attr和prop)實例介紹
- jQuery .attr()和.removeAttr()方法操作元素屬性示例
- jQuery學習之prop和attr的區(qū)別示例介紹
- jquery attr方法獲取input的checked屬性問題
- 用JQuery 判斷某個屬性是否存在hasAttr的解決方法
- jquery $(this).attr $(this).val方法使用介紹
- Jquery下attr和removeAttr的使用方法
- jquery 獲取自定義屬性(attr和prop)的實現代碼
- jquery attr()設置和獲取屬性值實例教程
相關文章
jQuery中[attribute*=value]選擇器用法實例
這篇文章主要介紹了jQuery中[attribute*=value]選擇器用法,實例分析了[attribute*=value]選擇器的功能、定義及匹配給定的屬性包含某些值的元素的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2014-12-12jQuery EasyUI API 中文文檔 - Calendar日歷使用
jQuery EasyUI API 中文文檔 - Calendar日歷使用,需要的朋友可以參考下。2011-10-10