document.getElementById('divw').data-value=james;<link rel = "stylesheet" type = "text/css" href = "loading-bar.css"/>
<script type = "text/javascript" src = "loading-bar.js"></script>
<div id = "divw" class = "ldBar" data-type = "fill" data-img = "https://www.mediumpath.com/images/logo.png"></div>Выше мой код, и я хочу добавить атрибут data-value в элемент с идентификатором divw, но, похоже, атрибут со значением не имеет значения, скажите, пожалуйста, что не так? Заранее спасибо.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Sets the value of an attribute on the specified element. If the attribute already exists, the value is updated; otherwise a new attribute is added with the specified name and value.
Обратите внимание: поскольку james является строкой, ее необходимо заключить в кавычки.
Используйте setAttribute() следующим образом:
document.getElementById('divw').setAttribute('data-value', 'james');
// check the new value with getAttribute()
console.info(document.getElementById('divw').getAttribute('data-value'));<link rel = "stylesheet" type = "text/css" href = "loading-bar.css"/>
<script type = "text/javascript" src = "loading-bar.js"></script>
<div id = "divw" class = "ldBar" data-type = "fill" data-img = "https://www.mediumpath.com/images/logo.png"></div>Для большинства атрибутов .setAttribute() был бы хорошим способом чтения и управления ими, но атрибуты данных немного особенные. Помимо использования .setAttribute(), вы также можете использовать свойство набора данных для атрибут данных доступа:
var mydiv = document.getElementById('divw');
divw.dataset.value = "blah";
Обратите внимание, что при использовании набора данных вам необходимо удалить префикс data- и преобразовать остальную часть имени из kebab-case в camelCase.
Вы должны использовать
setAttribute("data-value",james), потому что синтаксис JavaScript не позволяет использовать-в именах идентификаторов.