In questo caso è necessario prop()
piuttosto che attr()
, chiamate sostituzione a attr()
con prop()
nel codice generalmente funzionerà.
Dahttp://blog.jquery.com/2011/05/10/jquery-1-6-1-rc-1-released/
La differenza tra attributi e proprietà possono essere importante in situazioni particolari. Prima di jQuery 1.6, il metodo .attr()
talvolta prendeva in considerazione i valori delle proprietà durante il recupero di alcuni attributi, il che poteva causare un comportamento incoerente. A partire da jQuery 1.6, il metodo .prop()
fornisce un modo per recuperare esplicitamente i valori delle proprietà, mentre .attr()
recupera gli attributi.
elem.checked
==== true (Boolean)
cambierà con lo stato casella
$(elem).prop("checked")
==== true (Boolean)
cambierà con lo stato casella
elem.getAttribute("checked")
===== "checked" (String)
Stato iniziale della casella di controllo; non cambia
$(elem).attr("checked") (1.6)
===== "checked" (String)
Stato iniziale della casella di controllo; non cambia
$(elem).attr("checked") (1.6.1+)
======== "checked" (String)
cambierà con lo stato casella
$(elem).attr("checked") (pre-1.6)
======= true (Boolean)
Modificato con lo stato casella
Anche questo URL vi aiuterà di più circa le vostre domande .prop() vs .attr()
Una differenza di /is-checked-vs-attr-checked-checked/7
su http://jsperf.com/is-checked-vs-attr-checked-checked/7
anche per capire 0.123.riferiscono http://christierney.com/2011/05/06/understanding-jquery-1-6s-dom-attribute-and-properties/ http://jsperf.com/is-checked-vs-attr-checked-checked/7
fonte
2013-02-26 05:04:30
Ones jQuery l'altro non è sostituire –
.attr() con .prop(), perché .prop() è più veloce – frosdqy
aggiornato per sostenere –