/ / Il valore dell'attributo Data aggiornato da jquery non è visibile in DOM - jquery, attributo dati personalizzati

Il valore di attributo dei dati aggiornato da jquery non è visibile in DOM - jquery, attributo di dati personalizzati

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 № 1

Quando 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.