【发布时间】:2021-04-19 09:13:01
【问题描述】:
我想制作一个按钮来更改元素颜色并使用 LocalStorage 存储更改后的颜色。老实说,我是 LocalStorage 的新手,但我已尽力而为。它几乎可以工作,但有点错误,并没有真正保存更改。知道如何使它可行吗?
代码:
function markasRead() {
var message = document.getElementById("msgContainer");
var marbtn = document.getElementById("markasread");
const wasRead = localStorage.getItem('message') === 'true';
if (!message.classList.contains("readMsg")) {
marbtn.innerHTML = "Mark as unread";
localStorage.setItem('message', !wasRead);
message.classList.toggle("readMsg", !wasRead);
} else if (message.classList.contains("readMsg")) {
message.classList.remove("readMsg");
message.classList.toggle("readMsg", wasRead);
marbtn.innerHTML = "Mark as read";
}
}
function onloadread() {
message.classList.toggle('readMsg', localStorage.getItem('message') === 'true');
}
#msgContainer {
background-color: red;
}
.readMsg {
background-color: gray !important;
}
<body onload="onloadread()">
<div id="msgContainer">
Some text...<br>
<button id="markasread" onclick="markasRead()">Mark as read</button>
</div>
</body>
【问题讨论】:
标签: javascript html css local-storage onload