Domanda jQuery data () restituisce undefined, attr () restituisce un intero


Ho il codice seguente:

alert($embellishment.data("embellishmentId"));
alert($embellishment.attr("data-embellishmentId"));

Ritorna il primo avviso undefined, mentre il secondo allarme restituisce un numero intero, 3.

- VEDI DEMO -

Sto usando jQuery versione 1.7.2 (data è stato aggiunto con la versione 1.4, credo)

Perchè è questo? Dovrei usare data() del tutto se non restituisce i giusti valori?


44
2018-06-12 08:28


origine


risposte:


OK. Ho trovato il problema interpretando jQuery documenti.

Quando scrivi:

$embellishment.data("embellishmentId");

è gestito da jQuery come attributo composto:

<div data-embellishment-id="3"></div>

Quindi, per risolvere il problema è possibile utilizzare lettere minuscole nella chiave dati, altrimenti si limita a indirizzare il diverso attributo.

<!-- HTML -->
<div data-embellishmentid="3"></div>

// JavaScript
$embellishment.data("embellishmentid");

95
2018-06-12 08:43