最近項目回歸使用jquery,頁面渲染全是使用jquery做的,所以做的時候也遇到了許多以前沒有見過的問題,如這次操作【radio】控件的"checked"屬性時有遇到問題,
$("...").attr("checked",false);
無法起到作用,上網查了下使用prop()完美的解決了該問題,特此記錄一下。
官方定義:attr():
attr() 方法設置或返回被選元素的屬性和值。
當該方法用于返回屬性值,則返回第一個匹配元素的值。
當該方法用于設置屬性值,則為匹配元素設置一個或多個屬性/值對。
prop():
prop() 方法設置或返回被選元素的屬性和值。
當該方法用于返回屬性值時,則返回第一個匹配元素的值。
當該方法用于設置屬性值時,則為匹配元素集合設置一個或多個屬性/值對。
$('').attr()返回的是html對象
$('').prop()返回的是DOM對象
prop()
方法操作radio(checkbox)之類的控件,讓其選中的時候,其控件選中的值也會隨之改變。即既可以控制其選中,也能控制其取消選中;
類似于$("...").attr("checked");返回的是true或者false
如果有相應的屬性,返回的是該屬性,如果沒有則返回空串
attr()
方法操作adio(checkbox)之類的控件,讓其選中的時候,其控件選中的值不會隨之改變。即只能控制其選中,不能控制其取消選中;
類似于$("...").attr("checked");返回的是'checked'或者undefined
如果有相應的屬性,返回的是該屬性,如果沒有則返回undefined
attr和prop的使用場景:
1.添加屬性名稱該屬性就會生效應該使用prop();
2.是有true,false兩個屬性使用prop();(如'checked','selected','disabled'等)
3.其他則使用attr();
官方推薦使用:
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com