2014-12-08 15 views
20

Przedmiotem html:Jak zachować wielkość liter w atrybucie danych?

<div data-myAttribute="test"></div> 

Kod:

var $o = $("div"); 

$.each($o.data(),function(k,v){ 
    console.log(k); 
    //writes 'myattribute' instead of 'myAttribute' 
}); 

Jak mogę zachować sprawę atrybutu?

+7

Należy użyć 'data-my-attribute' dostać' .data ('myAttribute') ' –

+1

spojrzeć [tutaj] (http://stackoverflow.com/q/7641551/4202224) – empiric

+0

@ A.Wolff Dziękuję, to mi pomogło. Pomimo faktu, że * nie może być użyty * zgodnie z odpowiedziami. –

Odpowiedz

7

Jeśli twoim celem jest, aby kierować myAttribute jako klucz dataset nieruchomości, należy użyć data-my-attribute:

<div data-my-attribute="test"></div> 

Zobacz poniższy link dotyczące camelCased zasady: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset

PS: jak Izkata skomentował go :

Dla odniesienia dla innych, jquery wykonuje także konwersję taką, że $ div.data ("mój-atrybut") zwraca to samo, co $ div.data ("mojaAtrybut"). Własny zestaw danych javascript nie robi tego.

+0

Wybrałem twoją odpowiedź, ponieważ była przydatna i zrobiłem to, czego potrzebowałem. Dzięki. –

+2

Dla odniesienia dla innych, jquery wykonuje również konwersję taką, że '$ div.data ('mój-atrybut')' zwraca to samo, co '$ div.data ('myAttribute')'. Własna właściwość 'dataset' pakietu vanilla ja tego nie robi. – Izkata

13

Nie możesz. Nazwy atrybutów są zawsze pisane małymi literami w HTML5.

36

Poprawne atrybuty danych HTML nie może zawierać znaki wielkie i tak:

Z W3: atrybut danych

Niestandardowy jest atrybutem w żadnym nazw, którego nazwa zaczyna się od napisu „DATA- ", ma co najmniej jeden znak po łączniku , jest zgodny z XML, a nie zawiera znaków w zakresie U + 0041 do U + 005A (LITYNOWY KAPITAŁOWY LITER A do ŁOTWEGO LITERA KAPITAŁOWEGO Z).

1

Jako dodatek do odpowiedzi @A. Wolff „s, można zastosować -- danych atrybut nazwy, jeśli chcesz czołowych stolic.

<div data--my-attribute="test"></div> 

spowoduje klucza danych MyAttribute

Powiązane problemy