.data()

Metodin .data() avulla voimme lukea DOM-elementteihin aiemmin liitettyjä tietoja. Voimme hakea useita erillisiä arvoja yhdestä elementistä yksi kerrallaan tai joukkona:

1
2
3
4
5
6
7

Kutsu .data() ilman parametreja palauttaa JavaScript-olion, joka sisältää jokaisen tallennetun arvon ominaisuutena. Objektia voidaan käyttää suoraan tietojen arvojen hakemiseen (mutta huomaa, että alun perin katkoviivoja sisältäviä ominaisuuksien nimiä on muutettu jäljempänä kuvatulla tavalla).

JQuery 3:sta lähtien jokainen kahden merkin sarja ”-” (U+002D), jota seuraa pieni ASCII-kirjain avaimessa, korvataan kirjaimen isolla versiolla HTML-tietokanta-API:n mukaisesti. Tällainen lauseke kuin $( "body" ).data( { "my-name": "aValue" } ).data(); palauttaa { myName: "aValue" }.

HTML5 data-* -attribuutit

JQuery 1.4.3:sta lähtien data-*-attribuutteja käytetään jQueryn tietojen alustamiseen. Elementin data-*-attribuutit haetaan ensimmäisellä kerralla, kun data()-metodia kutsutaan siihen, ja sen jälkeen niitä ei enää käytetä tai muuteta (jQuery tallentaa kaikki arvot sisäisesti).

Attribuutin merkkijonoarvo yritetään muuntaa JavaScript-arvoksi (tämä sisältää booleanit, numerot, objektit, matriisit ja nollan). Merkkijono muunnetaan numeroksi vain, jos se ei muuta sen esitystä (esimerkiksi merkkijono ”100” muunnetaan numeroksi 100, mutta ”1E02” ja ”100.000” jätetään merkkijonoiksi, koska niiden numeerinen arvo 100 sarjallistuu arvoksi ”100”). Kun merkkijono alkaa kirjaimella ’{’ tai ’[’, sen jäsentämiseen käytetään jQuery.parseJSON-merkkiä; sen on noudatettava kelvollista JSON-syntaksia, mukaan lukien lainatut ominaisuuksien nimet. Merkkijonoa, joka ei ole analysoitavissa JavaScript-arvona, ei muunneta.

Voidaksesi hakea data-*-attribuutin arvon muuntamattomana merkkijonona, käytä attr()-metodia.

JQuery 1.6:sta lähtien data-*-attribuuttien nimissä olevat katkoviivat on käsitelty HTML-tietokanta-API:n mukaisella tavalla.

Esimerkiksi seuraavassa HTML:

1

Seuraavat vertailut ovat kaikki totta:

1
2
3
4

Vastaa

Sähköpostiosoitettasi ei julkaista.