Reputation: 341
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit<br> (A)Lorem ipsum dolor<br>
<span class="correct">(B)Lorem ipsum dolor</span><br> (C) Lorem ipsum dolor<br> (D) Lorem ipsum dolor</p>
<button class="ans-button">check answer</button>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit<br>
<span class="correct">(A)Lorem ipsum dolor</span><br> (B)Lorem ipsum dolor<br> (C) Lorem ipsum dolor<br> (D) Lorem ipsum dolor</p>
<button class="ans-button">check answer</button>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit<br> (A)Lorem ipsum dolor<br> (B)Lorem ipsum dolor<br> (C) Lorem ipsum dolor<br>
<span class="correct">(D) Lorem ipsum dolor</span></p>
<button class="ans-button">check answer</button>
how to change the color of the correct option when 'check answer' button of the question clicked?
Upvotes: 2
Views: 965
Reputation: 500
Using JQuery, it's pretty easy:
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit<br> (A)Lorem ipsum dolor<br>
<span class="correct">(B)Lorem ipsum dolor</span><br> (C) Lorem ipsum dolor<br> (D) Lorem ipsum dolor</p>
<button class="ans-button">check answer</button>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit<br>
<span class="correct">(A)Lorem ipsum dolor</span><br> (B)Lorem ipsum dolor<br> (C) Lorem ipsum dolor<br> (D) Lorem ipsum dolor</p>
<button class="ans-button">check answer</button>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit<br> (A)Lorem ipsum dolor<br> (B)Lorem ipsum dolor<br> (C) Lorem ipsum dolor<br>
<span class="correct">(D) Lorem ipsum dolor</span></p>
<button class="ans-button">check answer</button>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
var a = $(".ans-button").on("click", function() {
$(this).prev().find(".correct").css("color", "green");
});
</script>
Upvotes: 1
Reputation: 2530
Remove the hard coded correct
class on each span element and define the class in css, then on button click find the corresponding span(answer) element and add the class to the element:
[...document.getElementsByClassName('ans-button')].forEach(button => button.addEventListener('click', highlightAnswer));
function highlightAnswer() {
const answer = event.target.previousElementSibling.querySelector('span');
answer.classList.add('correct');
}
.correct {
background-color: green;
}
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit<br> (A)Lorem ipsum dolor<br>
<span>(B)Lorem ipsum dolor</span><br> (C) Lorem ipsum dolor<br> (D) Lorem ipsum dolor
</p>
<button class="ans-button">check answer</button>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit<br>
<span>(A)Lorem ipsum dolor</span><br> (B)Lorem ipsum dolor<br> (C) Lorem ipsum dolor<br> (D) Lorem ipsum dolor
</p>
<button class="ans-button">check answer</button>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit<br> (A)Lorem ipsum dolor<br> (B)Lorem ipsum dolor<br> (C) Lorem ipsum dolor<br><span>(D) Lorem ipsum dolor</span>
</p>
<button class="ans-button">check answer</button>
Upvotes: 1
Reputation: 176
You can use the IF ELSE here, if answer is correct, you make .class in css giving it color, if answer is correct, CSS applies, if not, it goes to else, which can be left empty not applying anything or you can give alert if you want as bonus telling its wrong or giving it other color
Upvotes: -1