Подтвердить что ты не робот

Как сохранить регистр атрибута данных?

Объект html:

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

Код:

 var $o = $("div");

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

Как сохранить регистр атрибута?

4b9b3361

Ответ 1

Если ваша цель нацелена на myAttribute как на ключ свойства dataset, вы должны использовать data-my-attribute:

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

См. следующую ссылку относительно правила camelCased: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset

PS: как Izkata прокомментировал это:

Для справки для других, jquery также делает преобразование таким образом, что $div.data('my-attribute') возвращает то же самое, что и $Div.data( 'myAttribute'). Свойство dataset для ванильного javascript делает не делайте этого.

Ответ 2

Допустимые атрибуты HTML-данных не могут содержать символы верхнего регистра:

Из W3:

Атрибут пользовательских данных - это атрибут без имени, имя которого начинается с строки "data-", имеет по крайней мере один символ после дефис, является XML-совместимым, а не содержит символов в диапазоне U + 0041 до U + 005A (ЛАТИНСКОЕ КАПИТАЛ ПИСЬМО А-ЛАТИНСКОГО КАПИТАЛЬНОГО ПИСЬМА Z).

Ответ 3

Вы не можете. Названия атрибутов всегда строчные в HTML5.

Ответ 4

В качестве добавления к ответу @A. Wolff вы можете применить -- к имени атрибута данных, если хотите получить капитальные капиталы.

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

Появится ключ данных MyAttribute