javascript - 面对让 JS 按钮工作的问题

标签 javascript

我制作了一个按钮并添加了单击它的事件监听器。现在我为 JS 设置以下代码(按钮 id 是下一个):

next.addEventListener("click", () => {
  if (AB.style.backgroundColor === "pink") {
    AB.style.backgroundColor = "red";
  } else if (AB.style.backgroundColor === "red") {
    AB.style.backgroundColor = "orange";
  }
});
#AB {
  background-color: pink;
}
<div id="AB">Words</div>
<button id="next">Button</button>

现在,当我第一次单击该按钮时,颜色确实从粉红色变为红色。但是,第二次单击(即 else if 部分)不会执行任何操作。如何在点击时切换颜色?

最佳答案

是的,按照 @ggorlen 的建议查看 getCompulatedStyle()。

但它会给你一个计算值,采用 rgb(,,,) 格式。

我建议改用类。

<!DOCTYPE html>
<html>

<head>
  <style type="text/css">
    .pink {
      background-color: pink;
    }
    .red {
      background-color: red;
    }
    .orange {
      background-color: orange;
    }
  </style>
</head>

<body>
  <div id="AB" class="pink">Words</div>
  <button id="next">Button</button>
</body>
<script>
  next.addEventListener("click", () => {
    const element = document.getElementById('AB');

    if (element.classList.contains('pink')) {
      element.classList.remove('pink');
      element.classList.add('red');
    } else if (element.classList.contains('red')) {
      element.classList.remove('red');
      element.classList.add('orange');
    }
  });
</script>

</html>

关于javascript - 面对让 JS 按钮工作的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70407111/

相关文章:

javascript - 为什么这个 extjs 代码在 extjs 4.0.7 中返回 null?

javascript - 使用 jQuery 嵌套 JSON 获取

javascript - Python Pandas 突出显示 Dataframe 中的行

javascript - 无法在 Atom 编辑器中使用 eslint

javascript - Bootstrap Tooltips,如何使用fixed with with alignment?

java - 如何修复页面上的 '�' 符号?这似乎是 servlet 和 Javascript 之间发生的事情。

javascript - 从网络服务器下载任何文件类型

javascript - 使用 JavaScript 更改 HTML 表单输入

javascript - 如果站点上禁用了 javascript,内容脚本是否仍然运行?

javascript - 在 Angular 5+ 中过滤和/或分组数据