javascript - if 语句 btn.getAttr ('id' ) 与 | |总是返回 true

标签 javascript

通过js,我一直在检索html页面上按钮的id 并将它们传递给更改字符串的函数。该函数包含一个 if 语句,当单击某些按钮时该语句应该取消,但该函数永远不会停止。

这是我的代码:

let buttons = document.querySelectorAll("button")
buttons.forEach(function(btn) {
    btn.addEventListener('click', () => {
        if (btn.getAttribute('id') != "reset" || btn.getAttribute('id') != "equals") {
            //Do something
        }
    })
})

问题是,即使 btn 的 id == "#reset"或 "#equals"函数仍然会执行。我知道 id 的接收正常,因为我通过在 js 中记录按钮 id 来测试单击时发生的情况。

此代码有效,但重复且未使用 or 运算符:

let buttons = document.querySelectorAll("button")
buttons.forEach(function(btn) {
    btn.addEventListener('click', () => {
        if (btn.getAttribute('id') != "reset") {
            if (btn.getAttribute('id') != "equals") {
            console.log(btn.getAttribute('id'))
            document.getElementById("content").textContent += btn.textContent
    }
}})
})

我希望当 id 的值为重置或等于时该函数不会执行。我知道问题出在 if 语句中,但我无法弄清楚。

最佳答案

问题是 OR 运算符。您应该改用 AND 运算符。 假设单击 btn“reset”时,第一个条件返回 false,但第二个条件计算结果为 true,因此执行 if 语句。

关于javascript - if 语句 btn.getAttr ('id' ) 与 | |总是返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57502738/

相关文章:

javascript - getElementById().disabled=true;

javascript - 在每个函数执行之前和之后调用特定函数

javascript - 如何使用 if/else 条件语句加载函数的子函数

javascript - 显式调用与父函数查找的效率

javascript - 一旦鼠标不再存在 JS 隐藏按钮内容

javascript 变量和值串联

javascript - 使用球坐标三个js在球体上移动点

javascript - 来自 PHP 服务器的 AJAX GET 仅在第二次调用后才起作用

javascript - 如果条件满足则订阅,否则返回/退出 rxjs

javascript - 列不排队,使用 bootstrap 3