#javascript #html
#javascript #HTML
Вопрос:
Я объявляю следующий div в file1.html чтобы нарисовать хороший калибр. div использует некоторые пользовательские атрибуты данных HTML5 следующим образом:
<div class="gauge" id="meter1" data-settings='
{"value": 7,
"min": 0,
"max": 50,
"threshold": [
{"from": 25, "to": 50, "color": "blue", "label": "Warning"},
{"from": 0, "to": 25, "color": "orange", "label": "Critical"}
]
}'></div>
Теперь в Javascript, как мне вызвать div и установить новый номер для атрибута «value» и атрибута «threshold»? Спасибо
Ответ №1:
Для выполнения своей задачи вы можете использовать следующие функции:
element.getAttribute
чтобы получить значения внутри атрибутаelement.setAttribute
для установки значений внутри атрибутаJSON.stringify
иJSON.parse
для работы с JSON
Проверьте приведенный ниже код.
var meter1 = document.getElementById("meter1")
var dataSettings = JSON.parse(meter1.getAttribute("data-settings"))
dataSettings.value = 8
dataSettings.min = 5
meter1.setAttribute("data-settings", JSON.stringify(dataSettings))
console.log(meter1.getAttribute("data-settings"))
<div class="gauge" id="meter1" data-settings='
{"value": 7,
"min": 0,
"max": 50,
"threshold": [
{"from": 25, "to": 50, "color": "blue", "label": "Warning"},
{"from": 0, "to": 25, "color": "orange", "label": "Critical"}
]
}'></div>
Ответ №2:
Вы можете использовать document.querySelector
с JSON.parse
const gauge = document.querySelector('#meter1');
console.log(JSON.parse(gauge.dataset.settings).threshold)
<div class="gauge" id="meter1" data-settings='
{"value": 7,
"min": 0,
"max": 50,
"threshold": [
{"from": 25, "to": 50, "color": "blue", "label": "Warning"},
{"from": 0, "to": 25, "color": "orange", "label": "Critical"}
]
}'></div>