So like my previous question, I am once again asking for your JavaScript support. This is what I've come up with which for some reason, doesn't work:
function changecolor() {
let cc = document.getElementById('font');
let btn = document.getElementById('btn2');
if (cc.style.color == '#000000') {
cc.style.color = '#ff0000';
btn.innerHTML = 'Black';
}
else if (cc.style.color == '#ff0000') {
cc.style.color = '#000000';
btn.innerHTML = 'Red';
}
}
<p id="font" style="font-size: 25px; color: #000000;">Lorem Ipsum</p>
<button type="button" id="btn2" onclick="changecolor()">Red</button>
CodePudding user response:
If you console.log the color (console.log(cc.style.color)), you would see (in Chrome at least), that the color is logged as an RGB value (rgb(0, 0, 0)).
So just change the conditions:
function changecolor() {
let cc = document.getElementById('font');
let btn = document.getElementById('btn2');
console.log(cc.style.color)
if (cc.style.color == 'rgb(0, 0, 0)') {
cc.style.color = '#ff0000';
btn.innerHTML = 'Black';
}
else if (cc.style.color == 'rgb(255, 0, 0)') {
cc.style.color = '#000000';
btn.innerHTML = 'Red';
}
}
<p id="font" style="font-size: 25px; color: #000000;">Lorem Ipsum</p>
<button type="button" id="btn2" onclick="changecolor()">Red</button>
CodePudding user response:
The default browser will use RGB when you refer to object.style.color, so the return value will not be "#000000", here is an example:
function changecolor() {
let cc = document.getElementById('font');
let btn = document.getElementById('btn2');
console.log(cc.style.color)
if (cc.style.color == "rgb(0, 0, 0)") {
cc.style.color = "#ff0000";
btn.innerHTML = 'Black';
}
else if (cc.style.color == "rgb(255, 0, 0)") {
cc.style.color = "#000000";
btn.innerHTML = 'Red';
}
}
<p id="font" style="font-size: 25px; color: #000000;">Lorem Ipsum</p>
<button type="button" id="btn2" onclick="changecolor()">Red</button>
CodePudding user response:
It is tricky testing style elements. In your case the color is RGB.
Instead toggle classes and test they are toggled
const cc = document.getElementById('font');
const btn = document.getElementById('btn2');
btn.addEventListener("click", e => {
btn.classList.toggle("red");
cc.classList.toggle("red");
btn.textContent = btn.classList.contains("red") ? "Red" : "Black";
})
.red { color: red; }
#font {font-size: 25px;}
<p id="font" >Lorem Ipsum</p>
<button type="button" id="btn2" >Red</button>
