我们正在使用以下脚本在我的页面上设置颜色主题。当用户单击一个按钮并在 HTML 上设置一个类时。当用户单击另一个按钮时,它会改为设置该类名。这工作正常。
<script type="text/javascript">
if (localStorage.buttonColor) {
document.getElementsByTagName('html')[0].className = localStorage.buttonColor
}
function getButtonColor(buttonName) {
localStorage.buttonColor = buttonName;
document.getElementsByTagName('html')[0].className = buttonName
}
</script>
如果按钮颜色有一个 localstorage 值,那么它会设置类。但是,我们还需要它来禁用按钮。我们如何根据 localstorage 的值使其禁用按钮?
此外,如果用户单击一个按钮,那么我们希望禁用该按钮,并启用所有其他具有“主题”类的按钮。我们正在寻找一个仅限 JavaScript 的解决方案。
这是HTML:
<form class="ng-pristine ng-valid">
<button class="theme" name="darkBlue" onclick="getButtonColor(this.name)">Blue</button>
<button class="theme" name="black" onclick="getButtonColor(this.name)">Black</button>
</form>
这是一个解决方案,但这并不是我们所需要的全部,因为我们现在决定给按钮一个类名,以便更容易选择它们。此外,这仅适用于从本地存储获取,如果用户单击它,我们仍然需要禁用一个按钮并启用所有其他按钮。
if (localStorage.buttonColor) {
document.getElementsByTagName('html')[0].className = localStorage.buttonColor
var buttons = document.body.getElementsByTagName('form')[0].getElementsByTagName('button')
for(var i =0; i < buttons.length; i++)
if(buttons[i].name == localStorage.buttonColor) button.disabled = true
}