.data()

Med metoden .data() kan vi læse data, der tidligere var tilknyttet DOM-elementer. Vi kan hente flere forskellige værdier for et enkelt element en ad gangen eller som et sæt:

1
2
3
4
5
6
7

Opkaldelse af .data() uden parametre returnerer et JavaScript-objekt, der indeholder hver gemt værdi som en egenskab. Objektet kan bruges direkte til at hente dataværdier (men bemærk, at egenskabsnavne, der oprindeligt indeholdt bindestreger, vil være blevet ændret som beskrevet nedenfor).

Siden jQuery 3 erstattes hver sekvens af to tegn “-” (U+002D) efterfulgt af et ASCII-bogstav med lille bogstav i en nøgle af den store version af bogstavet i overensstemmelse med HTML-datasæt-API’en. En anvisning som $( "body" ).data( { "my-name": "aValue" } ).data(); returnerer { myName: "aValue" }.

HTML5 data-* Attributter

Siden jQuery 1.4.3 bruges data-*-attributter til at initialisere jQuery-data. Et elements data-*-attributter hentes første gang, data()-metoden påkaldes på det, og der er derefter ikke længere adgang til eller muteres (alle værdier gemmes internt af jQuery).

Der gøres ethvert forsøg på at konvertere attributtens strengværdi til en JavaScript-værdi (dette omfatter booleans, tal, objekter, arrays og null). En streng konverteres kun til et tal, hvis dette ikke ændrer dens repræsentation (f.eks. konverteres strengen “100” til tallet 100, men “1E02” og “100.000” forbliver som strenge, fordi deres numeriske værdi 100 serialiseres til “100”). Når en streng starter med ‘{‘ eller ‘[‘, bruges jQuery.parseJSON til at analysere den; den skal følge gyldig JSON-syntaks, herunder navne på egenskaber i anførselstegn. En streng, der ikke kan analyseres som en JavaScript-værdi, konverteres ikke.

For at hente en data-*-attributværdi som en ukonverteret streng skal du bruge attr()-metoden.

Siden jQuery 1.6 er bindestreger i data-*-attributnavne blevet behandlet på linje med HTML-datasæt-API’en.

For eksempel, givet følgende HTML:

1

De følgende sammenligninger er alle sande:

1
2
3
4

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.