[英]Change text on button when clicked with JavaScript
I'm trying to change the text of a button when it's pressed with JavaScript. 我试图用JavaScript按下按钮时更改其文本。 Should be very straightforward, however, it's not working.
应该很简单,但是,它不起作用。 Can anyone explain?
谁能解释? Here's my code:
这是我的代码:
function changeInnerHTML() { var buttonValue = document.getElementById('elementTEST').innerHTML; var buttonValueInnerHTMLBegin = '<p id="elementTEST">'; var buttonValueInnerHTMLEnd = '</p>'; alert("buttonValue = " + typeof(buttonValue)); // -> "string" if (buttonValue == "Online") { alert("turn off"); // -> "turn off" buttonValue = buttonValueInnerHTMLBegin + "Offline" + buttonValueInnerHTMLEnd; // -> DOESN'T CHANGE ANYTHING alert("turned off"); // -> "turned off" } else if (buttonValue == "Offline") { buttonValue = "Online"; } else { alert("There's a problem"); } }
<div class="containerTEST"> <div class="divTEST" onclick="changeInnerHTML()"> <p id="elementTEST">Online</p> </div> </div>
I have run this both with and without the "buttonValueInnerHTMLBegin/End" variables being included, and I get the same result. 无论是否包含“ buttonValueInnerHTMLBegin / End”变量,我都可以运行此命令,并且得到相同的结果。
I get the alerts (shown as comments in the code), but the text/innerHTML doesn't change. 我收到警报(在代码中显示为注释),但是text / innerHTML不变。
Thanks for any help! 谢谢你的帮助!
它不是参考,您必须在最后直接设置它:
document.getElementById('elementTEST').innerHTML = buttonValue
textContent
textContent
Element.innerHTML = "bla"
to set a new inner HTML) Element.innerHTML = "bla"
设置新的内部HTML) Element.textContent = "bla"
to set a new text content Element.textContent = "bla"
设置新的文本内容 onclick
- it's discouraged for code maintainability reasons onclick
出于代码可维护性的考虑,建议不要使用它 <button>
for semantic reasons and accessibility <button>
Here's a simpler version 这是一个简单的版本
[...document.querySelectorAll(".toggleOnline")].forEach( el => el.addEventListener("click", () => { el.textContent = /online/i.test(el.textContent) ? "Offline" : "Online"; }) );
.toggleOnline { border: none; border-radius: 0; background: #ddd; padding: 8px 16px; }
<button class="toggleOnline" type="button" aria-live="assertive" aria-atomic="true"> Online </button>
Now you can also tab your element and use Spacebar or Enter to toggle your button. 现在,您还可以选择元素并使用空格键或Enter键切换按钮。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.