Давайте предположим, что наши флажки являются слепыми
<input type="checkbox" onclick = "clickThis(event)" value="Yes"/>
<input type="checkbox" onclick = "clickThis(event)" value="Yes"/>
<input type="checkbox" onclick = "clickThis(event)" value="Yes"/>
<input type="checkbox" onclick = "clickThis(event)" value="Yes"/>
<input type="checkbox" onclick = "clickThis(event)" value="Yes"/>
<input type="checkbox" onclick = "clickThis(event)" value="Yes"/>
Теперь нам нужно выяснить, по какому элементу щелкнули, для этого мы можем получить индекс элемента, по которому щелкнули.
const clickedIndex = [...event.target.parentElement.children].indexOf(event.target);
эта строка даст вам индекс элемента, по которому щелкнули, который вы можете сохранить в вашем локальном хранилище
localStorage.setItem([...el.parentElement.children].indexOf(el), [...el.parentElement.children].indexOf(el));
, а также вы можете проверить, загружает ли ваша страница тот индекс, который сохранен в вашем локальном хранилище.
const inputs = document.querySelectorAll("input");
console.log(inputs);
if (localStorage.length > 0) {
for (let key in localStorage) {
if (!isNaN(localStorage[key]))
inputs[localStorage[key]].checked = true;
}
}
отсюда полный код
<body>
<input type = "checkbox" onclick = "clickThis(event)"/>
<input type = "checkbox" onclick = "clickThis(event)"/>
<input type = "checkbox" onclick = "clickThis(event)"/>
<input type = "checkbox" onclick = "clickThis(event)"/>
<input type = "checkbox" onclick = "clickThis(event)"/>
<input type = "checkbox" onclick = "clickThis(event)"/>
<input type = "checkbox" onclick = "clickThis(event)"/>
<input type = "checkbox" onclick = "clickThis(event)"/>
</body>
<script>
const inputs = document.querySelectorAll("input");
console.log(inputs);
if (localStorage.length > 0) {
for (let key in localStorage) {
if (!isNaN(localStorage[key]))
inputs[localStorage[key]].checked = true;
}
}
function clickThis(event) {
console.log(event.target);
const el = event.target;
const clickedIndex = [...el.parentElement.children].indexOf(el);
if (event.target.checked) {
// adding click value to local storage
localStorage.setItem([...el.parentElement.children].indexOf(el), [...el.parentElement.children].indexOf(el));
} else {
// deleting unchecked value from localstorage
localStorage.removeItem([...el.parentElement.children].indexOf(el), [...el.parentElement.children].indexOf(el));
}
}
</script>
#happy_coding
REPL link
https://repl.it/repls/SlateblueCorruptScale