This la domanda è correlata alla mia e spiega che cos'è .data
method in Jquery.scopo dei dati in jquery? (rispetto all'aggiunta di campi personali agli oggetti Jquery)
A parte il rapporto con HTML5 data-*
attributi degli elementi (come <p class='foo_cl' data-bar='gee'>
, per esempio) perché dovrei codice:
$('body').data("my_lab", {some:"object"}); // §1
invece di
$('body').my_lab = {some:"object"}; // §2
(io sono per lo più interessati nel caso dove il selettore di Jquery fornisce un oggetto, come per $('body')
sopra)
Il successivo (§2) sembra più leggibile e più breve, e credo che sarebbe più efficiente del precedente (§1). Naturalmente data
è un selettore Jquery (ma potrei usare each
per impostare il campo .my_lab
, ecc ...)
E potrei anche pensare di cambiare l'elemento DOM con il brutto cercando
$('body')[0].my_lab = {some:"object"}; // §3 is ugly
(che è forse un comportamento indefinito, vedi this)
Naturalmente, v'è il potenziale problema di collisione il nome del campo my_lab
con qualche campo esistente nell'attuazione JQuery; ma presumo che l'utilizzo di un suffisso comune (come my_
) nei nomi dei campi dovrebbe essere sufficiente.
FWIW, sono interessato solo al recente Jquery (ad esempio Jquery 2.1.4) sul recente Firefox (ad esempio 38 o 42) su Linux.
In altre parole, perché aggiungere i miei campi in oggetti JQuery non dovrebbe essere disapprovato?
il 3 ° va bene, i primi due oggetti di scena su quello che di solito è un oggetto/collezione a scomparsa. – dandavis