Как сохранить регистр атрибута данных?
Объект html:
<div data-myAttribute="test"></div>
Код:
var $o = $("div");
$.each($o.data(),function(k,v){
console.log(k);
//writes 'myattribute' instead of 'myAttribute'
});
Как сохранить регистр атрибута?
Ответы
Ответ 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