简体   繁体   English

我怎样才能使用条件语句来切换我标题的颜色?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM