Примечание: я использую только vanilla js.
В настоящее время у меня есть рабочий скрипт для добавления / удаления классов через select options
, а также localStorage
. Все отлично работает, см. Jsfiddle здесь .
Теперь я хочу добавить два checkbox's
для выполнения аналогичным образом. Моя проблема в том, что я не уверен, как добавить флажки в мой текущий скрипт localStorage
.
Вот мои checkbox's
:
<input type="checkbox" name="checkbox1" id="checkbox1" onchange="checkbox1(this)">
<input type="checkbox" name="checkbox2" id="checkbox2" onchange="checkbox2(this)">
И добавить / удалить класс при отметке / снятии флажка для флажка1:
var checkbox = document.getElementById('checkbox1');
checkbox.addEventListener("change", checkbox1, false);
function checkbox1() {
var isChecked = checkbox.checked;
if (isChecked) {
[].map.call(document.querySelectorAll('body,.nc,.tags'), function(el) {
el.classList.add('classname');
});
} else {
[].map.call(document.querySelectorAll('body,.nc,.tags'), function(el) {
el.classList.remove('classname');
});
}
}
Работает нормально. Теперь мне просто нужно добавить его к localStorage
.
Вот мой localStorage
скрипт, который работает для моего select options
(полный пример в моем jsfiddle). Как мне изменить его, чтобы он работал и для моего checkbox's
? Я предполагаю, что мне нужно изменить вторую строку, чтобы проверить checkbox
вместо options
, но я не уверен, как.
function selectTest(element) {
const a = element.options[element.selectedIndex].value;
setTest(a);
localStorage['test'] = a;
}
function setTest(a) {
if (a == "option1") {
//add+remove classes here
}
}
(function() {
if (localStorage['test'])
document.getElementById("test").value = localStorage['test'];
setTest(localStorage['test'])
})();