为了账号安全,请及时绑定邮箱和手机立即绑定

多次单击按钮时如何更改 inner.HTML

多次单击按钮时如何更改 inner.HTML

繁花如伊 2023-03-18 11:07:46
单击按钮时,我试图更改按钮文本和样式。代码在将“生成”更改为“重置”按钮时有效,但从“重置”到“生成”却不起作用。似乎代码只是在第一次点击时才起作用。我怎样才能解决这个问题?// Change Generate Button to Reset#let generateBtn = document.getElementById("generateBtn");generateBtn.addEventListener("click", () => {  if ((generateBtn.innerHTML = "GENERATE")) {    generateBtn.innerHTML = "RESET";    generateBtn.classList.add("resetBtn-shown");  } else {    generateBtn.innerHTML = "GENERATE";    generateBtn.classList.remove("resetBtn-shown");  }});.generateBtn-shown {  background-color: red;  color: #eba341;  font-size: 1.5rem;  font-weight: 500;  border-radius: 0.5rem;  width: 10rem;  height: 3rem;  border: none;}.resetBtn-shown {  background-color: #21b884;  color: white;}<button id="generateBtn" class="generateBtn-shown">GENERATE</button>
查看完整描述

3 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

if声明中,你需要有==而不是等于。所以在你的情况下它需要是:

if ((generateBtn.innerHTML == "GENERATE")) {


// Change Generate Button to Reset#

let generateBtn = document.getElementById("generateBtn");


generateBtn.addEventListener("click", () => {

  if ((generateBtn.innerHTML == "GENERATE")) {

    generateBtn.innerHTML = "RESET";

    generateBtn.classList.add("resetBtn-shown");

  } else {

    generateBtn.innerHTML = "GENERATE";

    generateBtn.classList.remove("resetBtn-shown");

  }

});

.generateBtn-shown {

  background-color: red;

  color: #eba341;

  font-size: 1.5rem;

  font-weight: 500;

  border-radius: 0.5rem;

  width: 10rem;

  height: 3rem;

  border: none;

}


.resetBtn-shown {

  background-color: #21b884;

  color: white;

}

<button id="generateBtn" class="generateBtn-shown">GENERATE</button>


查看完整回答
反对 回复 2023-03-18
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

// Change Generate Button to Reset#

let generateBtn = document.getElementById("generateBtn");


generateBtn.addEventListener("click", () => {

  if ((generateBtn.innerHTML === "GENERATE")) { //=== instead of =

    generateBtn.innerHTML = "RESET";

    generateBtn.classList.add("resetBtn-shown");

  } else {

    generateBtn.innerHTML = "GENERATE";

    generateBtn.classList.remove("resetBtn-shown");

  }

});

.generateBtn-shown {

  background-color: red;

  color: #eba341;

  font-size: 1.5rem;

  font-weight: 500;

  border-radius: 0.5rem;

  width: 10rem;

  height: 3rem;

  border: none;

}


.resetBtn-shown {

  background-color: #21b884;

  color: white;

}

<button id="generateBtn" class="generateBtn-shown">GENERATE</button>


查看完整回答
反对 回复 2023-03-18
?
12345678_0001

TA贡献1802条经验 获得超5个赞

尝试这个..


你应该使用 textContent 而不是 innerHtml .. 它会给你text来自 html 标签 .. 使用includes方法来比较文本 ..


在谷歌上搜索:innertextvs innerhtmlvs textcontent..


let generateBtn = document.getElementById("generateBtn");


generateBtn.addEventListener("click", (e) => {

  if (e.target.textContent.includes("GENERATE")) {

    e.target.innerText = "RESET";

    e.target.classList.add("resetBtn-shown");

  } else {

    e.target.innerText = "GENERATE";

    e.target.classList.remove("resetBtn-shown");

  }

});

.generateBtn-shown {

  background-color: red;

  color: #eba341;

  font-size: 1.5rem;

  font-weight: 500;

  border-radius: 0.5rem;

  width: 10rem;

  height: 3rem;

  border: none;

}


.resetBtn-shown {

  background-color: #21b884;

  color: white;

}

<button id="generateBtn" class="generateBtn-shown">GENERATE</button>


查看完整回答
反对 回复 2023-03-18
  • 3 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信