[英]how can i use conditional statements to switch colors of my heading?
Button should toggle from original(black) to yellow and revert back. 按钮应从原始(黑色)切换为黄色并恢复原状。 My issue is reverting it back. 我的问题是将其还原。 In the if-else statement only the else statement works. 在if-else语句中,只有else语句有效。 I have tried switch statement but that does not work html 我已经尝试过switch语句,但这不起作用
var buttonElement = document.getElementById("title-button"); var elementbutton = buttonElement; var elementsArray = document.getElementsByTagName("h1"); var element = elementsArray[0]; elementbutton.addEventListener( "click", function(){ if(elementbutton.hasOwnProperty("yellow")){ element.remove("yellow"); element.classList.remove("bordered-text"); element.style.add = "black"; } else { element.style.color = "yellow"; element.classList.add("bordered-text"); } });
.bordered-text{ border-style: solid; border-color: black; }
<button id="title-button">Alters title</button> <h1>Header 1</h1>
The button you are clicking does not have any property named yellow , thus elementbutton.hasOwnProperty("yellow")
always evaluates to false
, hence the else block is always executing. 您单击的按钮没有任何名为yellow的属性,因此elementbutton.hasOwnProperty("yellow")
始终求值为false
,因此else块始终在执行。
Instead of checking the hasOwnProperty
of the clicked button, you should check element.style.color
of h1
: 不要检查单击按钮的hasOwnProperty
,而应检查h1
element.style.color
:
var buttonElement = document.getElementById("title-button"); var elementbutton = buttonElement; var elementsArray = document.getElementsByTagName("h1"); var element = elementsArray[0]; elementbutton.addEventListener( "click", function(){ if(element.style.color == "yellow"){ element.style.color = "black"; element.classList.remove("bordered-text"); } else { element.style.color = "yellow"; element.classList.add("bordered-text"); } });
.bordered-text{ border-style: solid; border-color: black; }
<button id="title-button">Alters title</button> <h1>Header 1</h1>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.