Metoda .data()
umožňuje načíst data dříve přiřazená k prvkům DOM. Můžeme načíst několik různých hodnot pro jeden prvek po jedné nebo jako sadu:
1
2
3
4
5
6
7
|
|
Volání .data()
bez parametrů vrací JavaScriptový objekt obsahující každou uloženou hodnotu jako vlastnost. Tento objekt lze použít přímo k získání hodnot dat (ale uvědomte si, že názvy vlastností původně obsahující pomlčky budou upraveny, jak je popsáno níže).
Od jQuery 3 je každá dvouznaková sekvence „-“ (U+002D) následovaná malým písmenem ASCII v klíči nahrazena velkou verzí písmene, což je v souladu s API datové sady HTML. Příkaz jako $( "body" ).data( { "my-name": "aValue" } ).data();
vrátí { myName: "aValue" }
.
HTML5 data-*
Atributy
Od verze jQuery 1.4.3 se atributy data-*
používají k inicializaci dat jQuery. Atributy data-*
prvku jsou načteny při prvním vyvolání metody data()
nad ním a poté již nejsou zpřístupněny ani mutovány (všechny hodnoty jsou uloženy interně v jQuery).
Každý pokus o převod řetězcové hodnoty atributu na hodnotu JavaScriptu je proveden (to zahrnuje booleany, čísla, objekty, pole a null). Řetězec je převeden na číslo pouze tehdy, pokud se tím nezmění jeho reprezentace (například řetězec „100“ je převeden na číslo 100, ale „1E02“ a „100.000“ jsou ponechány jako řetězce, protože jejich číselná hodnota 100 se serializuje na „100“). Pokud řetězec začíná znakem „{“ nebo „[„, použije se k jeho analýze znak jQuery.parseJSON
; musí dodržovat platnou syntaxi JSON včetně názvů vlastností v uvozovkách. Řetězec, který nelze analyzovat jako hodnotu v jazyce JavaScript, se nepřevádí.
Chcete-li získat hodnotu atributu data-*
jako nekonvertovaný řetězec, použijte metodu attr()
.
Od verze jQuery 1.6 jsou pomlčky v názvech atributů data-*
zpracovávány v souladu s rozhraním API datové sady HTML.
Příklad při následujícím HTML:
1
|
|
Všechna následující porovnání jsou pravdivá:
1
2
3
4
|
|