Sto aggiornando un attributo di dati da jQuery, come:
jQuery("div").data("hidden", "true");
alert(jQuery("div").data("hidden"));
Il valore dell'attributo dati è stato modificato e ha restituito un nuovo valore che è true
ma DOM sta ancora mostrando il vecchio valore che è false
.
risposte:
34 per risposta № 1Quando usi .dati() per aggiornare un valore di dati, sta aggiornando l'oggetto interno gestito da jQuery, quindi non verrà aggiornato nel file data-*
attributo
2 per risposta № 2
Stavo picchiando così tanto in giro:(e in grado di risolvere il problema. Sembra che non possiamo raggiungere questo obiettivo utilizzando il metodo dei dati jquery se l'html è dinamico e l'attributo dei dati è stato modificato in seguito dopo l'accesso alla prima volta.
Secondo jQuery.data ()
Gli attributi dei dati vengono estratti la prima volta che la proprietà dei dati è accesso e quindi non sono più accessibili o mutati (tutti i valori dei dati vengono quindi memorizzati internamente in jQuery).
Quindi quello che ho fatto è stato modificato in un metodo attr che non ti dà il valore analizzato per intero, quindi devi usare l'operando "+" per convertire come:
+ myElement.attr("data-index");
Nota: Devi stare attento, convertirà il risultato in NaN se c'è una stringa nei dati attr. BTW è la tua scelta di implementazione del codice.