.data()

Med metoden .data() kan vi läsa data som tidigare associerats med DOM-element. Vi kan hämta flera olika värden för ett enskilt element, ett i taget eller som en uppsättning:

1
2
3
4
5
6
7

Att kalla .data() utan parametrar returnerar ett JavaScript-objekt som innehåller varje lagrat värde som en egenskap. Objektet kan användas direkt för att hämta datavärden (observera dock att egenskapsnamn som ursprungligen innehöll streck kommer att ha ändrats enligt beskrivningen nedan).

Sedan jQuery 3 ersätts varje sekvens av två tecken av ”-” (U+002D) följt av en ASCII-bokstav med små bokstäver i en nyckel med den stora versionen av bokstaven, i linje med HTML dataset API. Ett uttalande som $( "body" ).data( { "my-name": "aValue" } ).data(); returnerar { myName: "aValue" }.

HTML5 data-* Attribut

Sedan jQuery 1.4.3 används data-*-attribut för att initialisera jQuery-data. Ett elements data-*-attribut hämtas första gången data()-metoden åberopas på det, och därefter nås eller muteras de inte längre (alla värden lagras internt av jQuery).

Varje försök görs att konvertera attributets strängvärde till ett JavaScript-värde (detta inkluderar booleaner, siffror, objekt, matriser och null). En sträng konverteras endast till ett tal om detta inte ändrar representationen (till exempel konverteras strängen ”100” till talet 100, men ”1E02” och ”100.000” lämnas som strängar eftersom deras numeriska värde 100 serialiseras till ”100”). När en sträng börjar med ’{’ eller ’[’ används jQuery.parseJSON för att analysera den; den måste följa giltig JSON-syntax, inklusive egenskapsnamn i citationstecken. En sträng som inte kan analyseras som ett JavaScript-värde konverteras inte.

Om du vill hämta ett data-*-attributvärde som en okonverterad sträng använder du attr()-metoden.

Sedan jQuery 1.6 har bindestreck i data-*-attributnamn behandlats i linje med HTML-dataset-API:et.

Till exempel, givet följande HTML:

1

Följande jämförelser är alla sanna:

1
2
3
4

Lämna ett svar

Din e-postadress kommer inte publiceras.