javascript - 如何寻址从函数内部调用函数的元素?

标签 javascript

我正在尝试这个 HTML 代码:

<button name="darkBlue" onclick="setThemeColor(this.name)">Blue</button>
<button name="black" onclick="setThemeColor(this.name)">Black</button>

和脚本:

function setThemeColor(buttonName) {
    localStorage.themeColor = buttonName;
    document.getElementsByTagName('html')[0].className = buttonName
    var themeButtons = document.querySelectorAll(".theme");
    for (var button in themeButtons) {
        themeButtons[button].disabled = false;
    }
    // this.disabled = false;
    // element.setAttribute("disabled", "disabled");
}

我在设置调用该函数的按钮的禁用状态时遇到问题。有人可以告诉我该怎么做吗?我尝试了两种方法,但似乎都不起作用。

最佳答案

传入对按钮的引用,而不仅仅是名称:

HTML

<button name="darkBlue" onclick="setThemeColor(this)">Blue</button>
<button name="black" onclick="setThemeColor(this)">Black</button>

JS

function setThemeColor(button) {
    localStorage.themeColor = button.name;
    document.getElementsByTagName('html')[0].className = button.name;
    var themeButtons = document.querySelectorAll(".theme");
    for (var button in themeButtons) {
        themeButtons[button].setAttribute("disabled", "disabled");
    }
    button.setAttribute("disabled", "disabled");
}

关于javascript - 如何寻址从函数内部调用函数的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19316627/

相关文章:

javascript - 将子组件导入父组件 Vue.js

javascript - JavaScript 中的公共(public)/私有(private)成员

javascript - 样式无法正常工作

javascript - Transcrypt:使用来自另一个 python 脚本的代码导致 'TypeError: module is undefined'

javascript - Leaflet.draw 阻止事件

javascript - 使用数组两个元素查找并存储数组一的索引,并将数组一的所有索引存储在数组 3 中

javascript - 为以后的 Javascript 保存参数

javascript - 为什么这个 JavaScript 函数返回 '2' ?

java - Phonegap 调试远程用户

javascript - 通过获取 data-id 创建的运行变量