2009-11-25 3 views
9

Non ho trovato a che cosa serve la funzione jquery data(). Qualcuno può darmi qualche esempio di come può essere usato?cosa fa la funzione jQuery data()

+0

vuoi dire http://docs.jquery.com/Core/data o http://docs.jquery.com/Internals/jQuery.data? –

risposta

11

È davvero utile per associare vari oggetti, stringhe, matrici, ecc. Con un elemento DOM. Ecco un divertente ipotetico uso:

$(document).ready(function(){ 
    $("a").each(function(index, el){ 
     if(index % 2 == 0) 
     $(this).data('coolColor', 'Orange'); // Set the data 
     else 
     $(this).data('coolColor', 'Purple'); // Set the data 
    }).click(function(e){ 
     alert($(this).data('coolColor')); // Retrieve the data 
     e.preventDefault(); 
    }); 
}); 

Questo sarebbe selezionare ogni a tag e impostare Orange se dispari, o Purple se ancora. Questo non è il modo più ottimale per scrivere questo codice se questo è ciò che volevi veramente fare, ma illustra come utilizzare la funzione .data().

Si può anche usare per archiviare gli oggetti:

$("#header").data('headerSettings',{ 
    color: "red", 
    cost: "$25.00", 
    time: 1000 
}); 

Ora si potrebbe accedere ai dati in qualsiasi altro punto della pagina:

$("#header").data('headerSettings').color; 
+0

I thi8nk assegna valore a variabili come var color = "orange" –

0

Il jQuery documentation riassume abbastanza bene:

Restituisce un ID univoco per l'elemento.

In genere questa funzione sarà solo utilizzata internamente. Probabilmente non utilizzerai il metodo data() in questo modo . Il numero viene chiamato automaticamente quando necessario quando si utilizza la funzionalità altri dati() .

Fondamentalmente questa funzione esiste per supportare altre funzioni jQuery. È meglio ignorare questa funzione in quanto non è destinata alla parte dell'interfaccia pubblica dell'API jQuery.

+7

Ti stai riferendo a 'jQuery.data', mentre l'OP si riferisce a' jQuery.fn.data' ... Molto diverso. – James

1

Consente di associare qualsiasi tipo di dati a un elemento DOM. Vedere il post sul blog this per alcuni esempi.

0

Credo che questa domanda ha bisogno di un po 'più di attenzione. L'API di jQuery data è davvero potente per vari casi d'uso.

La funzione dati di jQuery consente di archiviare e recuperare i dati associati con qualsiasi oggetto jQuery.

In primo luogo, può anche essere utilizzato per leggere gli attributi data- impostati su qualsiasi nodo in html.

Esempio 1

HTML: <div id="myNode" data-foo="bar"></div>.

codice jQuery: $("#myNode").data("foo") //bar

Esempio 2

Analogamente posso memorizzare un valore w.r.t qualsiasi nodo troppo.

codice jQuery:

$("#myNode").data("foo","baz") $("#myNode").data("foo") //baz

Una cosa importante da notare qui è che quando si imposta un dato sulla nota utilizzando l'API di dati, il codice HTML non viene aggiornato nel DOM. Se si desidera aggiornare l'HTML, è possibile attenersi al metodo attr("data-foo","baz").

Mentre è possibile leggere le stringhe memorizzate negli attributi dei dati HTML, è anche possibile assegnare un oggetto durante la memorizzazione di un valore utilizzando l'API dei dati.

Esistono vari casi d'uso in cui gli sviluppatori collegano un oggetto a un nodo.

ad es.

var obj = { 
    name : "test" 
} 
$("#myNode").data("foo",obj); 

$("#myNode").data("foo") === obj //true 

Vai avanti, explore the API here.