Trong trường hợp này, bạn cần prop()
hơn attr()
, cuộc gọi thay thế để attr()
với prop()
trong mã của bạn thường sẽ làm việc.
Từhttp://blog.jquery.com/2011/05/10/jquery-1-6-1-rc-1-released/
Sự khác biệt giữa các thuộc tính và các tài sản có thể quan trọng trong những tình huống cụ thể. Trước jQuery 1,6, phương pháp .attr()
đôi khi tính đến các giá trị thuộc tính khi truy xuất một số thuộc tính, điều này có thể gây ra hành vi không nhất quán. Kể từ jQuery 1.6, phương thức .prop()
cung cấp cách để truy lục một cách rõ ràng các giá trị thuộc tính, trong khi .attr()
truy lục các thuộc tính.
elem.checked
==== true (Boolean)
sẽ thay đổi theo trạng thái hộp kiểm
$(elem).prop("checked")
==== true (Boolean)
sẽ thay đổi theo trạng thái hộp kiểm
elem.getAttribute("checked")
===== "checked" (String)
trạng thái ban đầu của hộp kiểm; không thay đổi
$(elem).attr("checked") (1.6)
===== "checked" (String)
Trạng thái ban đầu của hộp kiểm; không thay đổi
$(elem).attr("checked") (1.6.1+)
======== "checked" (String)
sẽ thay đổi theo trạng thái hộp kiểm
$(elem).attr("checked") (pre-1.6)
======= true (Boolean)
Changed với trạng thái hộp kiểm
Cũng url này sẽ giúp bạn nhiều hơn về truy vấn của bạn .prop() vs .attr()
Một sự khác biệt của /is-checked-vs-attr-checked-checked/7
trên http://jsperf.com/is-checked-vs-attr-checked-checked/7
Cũng để hiểu 0.123.tham khảo http://christierney.com/2011/05/06/understanding-jquery-1-6s-dom-attribute-and-properties/ http://jsperf.com/is-checked-vs-attr-checked-checked/7
Nguồn
2013-02-26 05:04:30
Ones jQuery khác không –
Thay .attr() với .prop(), vì .prop() là nhanh hơn – frosdqy
cập nhật để chống đỡ –