1. 程式人生 > 其它 >jquery中attr()和prop()對比,解決複選框第二次失效問題

jquery中attr()和prop()對比,解決複選框第二次失效問題

attr()和prop()有何區別?

使用prop的時候,返回值是標準屬性,true/false,比如$('#checkbox').prop('disabled'),不會返回“disabled”或者“”,只會是true/false。當然賦值的時候也是如此。使用attr,如disabled='disabled'時,為true,沒有選中時,則為undefined。如此,我們便統一了所有操作,無論是從語法上還是語義上。

.prop()方法應該被用來處理boolean attributes/properties以及在html(比如:window.location)中不存在的properties。其他所有的attributes可以而且應該繼續使用.attr()方法來進行操作。

什麼時候使用attr(),什麼時候使用prop()?

1、新增屬性名稱該屬性就會生效應該使用prop();
2、是有true,false兩個屬性使用prop();
3、其他則使用attr();

4、簡單的說,那些只新增屬性名不新增屬性值就會生效,或者是,只存在true/false的屬性就需要使用prop()方法,比如selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 和 defaultSelected。