Reputation: 35
i want to make the color of the number green if its more than zero to make it green and want to be red when its below zero but i cant do it i dont get why can anyone explain
const button1 = document.querySelector('.prevBtn');
const button2 = document.querySelector('.nextBtn');
const main = document.querySelector('.main-container')
const count = document.getElementById('counter')
let counter = 0
main.addEventListener('click', e => {
if(e.target.classList.contains('nextBtn')){
counter++
html=`
<h1 class="text-uppercase">counter</h1>
<h1 id="counter"class =count">${counter}</h1>
<div class="btn-container d-flex justify-content-around flex-wrap">
<button class="btn counterBtn prevBtn text-uppercase m-2">lower count</button>
<button class="btn counterBtn nextBtn text-uppercase m-2">add count</button>
`
main.innerHTML = html
}else if(e.target.classList.contains('prevBtn')){
counter--
html=`
<h1 class="text-uppercase">counter</h1>
<h1 id="counter">${counter}</h1>
<div class="btn-container d-flex justify-content-around flex-wrap">
<button class="btn counterBtn prevBtn text-uppercase m-2">lower count</button>
<button class="btn counterBtn nextBtn text-uppercase m-2">add count</button>
`
main.innerHTML = html
}
})
if(counter > 0){
count.style.color = 'green'
} else if(counter < 0) {
count.style.color = 'red'
}
Upvotes: 0
Views: 62
Reputation: 532
The order in your code is not correct. You must get an element after it is added to DOM.
Try the snippet.
const main = document.querySelector('.main-container')
let counter = 0
main.addEventListener('click', e => {
if(e.target.classList.contains('nextBtn')){
counter++
html=`
<h1 class="text-uppercase">counter</h1>
<h1 id="counter"class =count">${counter}</h1>
<div class="btn-container d-flex justify-content-around flex-wrap">
<button class="btn counterBtn prevBtn text-uppercase m-2">lower count</button>
<button class="btn counterBtn nextBtn text-uppercase m-2">add count</button>
`;
main.innerHTML = html
}else if(e.target.classList.contains('prevBtn')) {
counter--
html=`
<h1 class="text-uppercase">counter</h1>
<h1 id="counter">${counter}</h1>
<div class="btn-container d-flex justify-content-around flex-wrap">
<button class="btn counterBtn prevBtn text-uppercase m-2">lower count</button>
<button class="btn counterBtn nextBtn text-uppercase m-2">add count</button>
`;
main.innerHTML = html
}
const button1 = document.querySelector('.prevBtn');
const button2 = document.querySelector('.nextBtn');
const count = document.getElementById('counter')
if(counter > 0){
count.style.color = 'green'
} else if(counter < 0) {
count.style.color = 'red'
}
});
.main-container {
width: 100%;
height: 500px;
}
<div class="main-container nextBtn">Click On Me</div>
Upvotes: 1