2013-10-08 24 views
44

È id un attributo o una proprietà di HTML?HTML: attributi e proprietà

dovrei fare $('#selector').attr('id'); o $('#selector').prop('id');

Ho letto molti articoli e ancora confuso.

Qualcuno potrebbe spiegarmi quali sono le differenze tra le proprietà & in HTML/JS in un linguaggio molto semplice?

+6

http://stackoverflow.com/questions/5874652/prop-vs-attr – Satpal

+3

@Satpal La questione legata chiede le differenze tra le funzioni di jQuery, mentre questa domanda sta chiedendo quale sia la differenza tra proprietà e attributi in HTML. – Trisped

risposta

112

Gli attributi sono definiti da HTML. Le proprietà sono definite dal DOM.

Alcuni attributi HTML hanno un mapping 1: 1 sulle proprietà. id è un esempio di tale.

alcuni non (ad esempio l'attributo value specifica il valore iniziale di un ingresso, ma la proprietà value specifica il valore corrente ).

+0

Esiste sempre una proprietà corrispondente a ciascun attributo? Esiste sempre una mappatura 1: 1 iniziale tra il valore dell'attributo e il valore della proprietà? –

+2

@KevinWheeler - No e no. – Quentin

4

Sì, attr è pensato per gli attributi html in quanto sono strettamente definiti. il prop è per le proprietà.

Quindi ad esempio, si supponga di avere un nodo elem con classe "qualcosa" (elemento non jQuery oggetto raw). elem.className è la proprietà, ma è dove risiede l'attributo. La modifica dell'attributo class cambia anche la proprietà automaticamente e viceversa.

Attualmente, attr è confuso e confuso perché ha provato a svolgere entrambe le funzioni e ci sono molti bug a causa di ciò. L'introduzione di jQuery.fn.prop risolverà diversi blocchi, codice separato come dovrebbe essere stato separato dall'inizio e darà agli sviluppatori funzioni più veloci per fare ciò che si aspettano che facciano.

Consentitemi di recuperare una percentuale per un secondo e dire che dalla mia esperienza nel supporto IRC e nella lettura del codice di altri, il 95% dei casi d'uso per attr non dovrà passare al puntello.

See More

Problemi correlati