Jquery attr("checked") 返回checked或undefined 獲取選中失效
更新時間:2013年10月10日 16:46:20 作者:
$('#cb').attr('checked'); 返回的是checked或者是undefined,不是原來的true和false了,有關(guān)此問題的解決方法如下,感興趣的朋友可以參考下
假設(shè)我們現(xiàn)在需要這樣的場景:頁面上有一個checkbox,我們期望通過Jquery來獲得它是否選中,或者通過Jquery來讓它被選中。
在JQ1.6之前的版本,我們會這樣寫我們的代碼:
<input type='checkbox' id='cb'/>
<script>
//獲取是否選中
var isChecked = $('#cb').attr('checked');
//設(shè)置選中
$('#cb').attr('checked',true);
</script>
這樣寫在JQ1.6之前完全沒問題,可是當我們升級JQ1.6到更高的版本時,問題就來了,此時我們會發(fā)現(xiàn):
$('#cb').attr('checked'); 返回的是checked或者是undefined,不是原來的true和false了。
并且checked屬性在頁面初始化的時候已經(jīng)初始化好了,不會隨著狀態(tài)的改變而改變。所以如果checkbox一開始是選中的,那么返回的是checked,如果一開始沒被選中,則返回的是undefined。
解決的方法是:
<input type='checkbox' id='cb'/>
<script>
//獲取是否選中
var isChecked = $('#cb').prop('checked');
//或
var isChecked = $('#cb').is(":checked");
//設(shè)置選中
$('#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');
//設(shè)置選中
$('#cb').attr('checked',true);
</script>
這樣寫在JQ1.6之前完全沒問題,可是當我們升級JQ1.6到更高的版本時,問題就來了,此時我們會發(fā)現(xiàn):
$('#cb').attr('checked'); 返回的是checked或者是undefined,不是原來的true和false了。
并且checked屬性在頁面初始化的時候已經(jīng)初始化好了,不會隨著狀態(tài)的改變而改變。所以如果checkbox一開始是選中的,那么返回的是checked,如果一開始沒被選中,則返回的是undefined。
解決的方法是:
復制代碼 代碼如下:
<input type='checkbox' id='cb'/>
<script>
//獲取是否選中
var isChecked = $('#cb').prop('checked');
//或
var isChecked = $('#cb').is(":checked");
//設(shè)置選中
$('#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)的實現(xiàn)代碼
- jquery attr()設(shè)置和獲取屬性值實例教程
相關(guān)文章
jQuery中[attribute*=value]選擇器用法實例
這篇文章主要介紹了jQuery中[attribute*=value]選擇器用法,實例分析了[attribute*=value]選擇器的功能、定義及匹配給定的屬性包含某些值的元素的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2014-12-12jQuery實現(xiàn)checkbox全選功能完整實例
這篇文章主要介紹了jQuery實現(xiàn)checkbox全選功能,結(jié)合完整實例形式分析了jQuery事件響應及頁面元素屬性動態(tài)操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-07-07jQuery EasyUI API 中文文檔 - Calendar日歷使用
jQuery EasyUI API 中文文檔 - Calendar日歷使用,需要的朋友可以參考下。2011-10-10