**Why does my jQuery code not color the rows when conditions are met (I made the specific part of the script italic)?
**
HTML CODE for the POLL:
<form id="pollForm" class="mb-4">
<div class="form-group">
<label for="pitanje1"
>Koliko ste zadovoljni lokacijom FUTURA Shopping Centra?</label
>
<select id="pitanje1" name="pitanje1" class="form-control">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</div>
<div class="form-group">
<label for="pitanje2"
>Koliko ste zadovoljni radnjama u FUTURA Shopping Centru?</label
>
<select id="pitanje2" name="pitanje2" class="form-control">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</div>
<div class="form-group">
<label for="pitanje3"
>Koliko ste zadovoljni izgledom FUTURA Shopping Centra?</label
>
<select id="pitanje3" name="pitanje3" class="form-control">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</div>
<button
type="button"
class="btn btn-dark mt-2"
onclick="saveAnswers()"
>
Pošalji
</button>
</form>
<table class="table">
<thead>
<tr>
<th>Pitanja</th>
<th>Prosečna ocena</th>
</tr>
</thead>
<tbody id="resultsTableBody">
<tr id="row1">
<td>Koliko ste zadovoljni lokacijom FUTURA Shopping Centra?</td>
<td id="prosecnaOcena1">0</td>
</tr>
<tr id="row2">
<td>Koliko ste zadovoljni radnjama u FUTURA Shopping Centru?</td>
<td id="prosecnaOcena2">0</td>
</tr>
<tr id="row3">
<td>Koliko ste zadovoljni izgledom FUTURA Shopping Centra?</td>
<td id="prosecnaOcena3">0</td>
</tr>
</tbody>
</table>
jQuery and bootstrap imports with the logic code:
<script src="js/bootstrap.min.js"></script>
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<script>
const answersData = {
pitanje1: { ukupnaOcena: 0, brOdgovora: 0 },
pitanje2: { ukupnaOcena: 0, brOdgovora: 0 },
pitanje3: { ukupnaOcena: 0, brOdgovora: 0 },
};
function saveAnswers() {
const pitanje1 = parseInt($("#pitanje1").val());
const pitanje2 = parseInt($("#pitanje2").val());
const pitanje3 = parseInt($("#pitanje3").val());
updateAnswer("pitanje1", pitanje1);
updateAnswer("pitanje2", pitanje2);
updateAnswer("pitanje3", pitanje3);
updateResultsTable();
}
function updateAnswer(pitanje, vrednost) {
answersData[pitanje].ukupnaOcena += vrednost;
answersData[pitanje].brOdgovora++;
}
function updateResultsTable() {
$.each(answersData, function (pitanje, podaci) {
const srednjaVrednost =
podaci.ukupnaOcena > 0
? (podaci.ukupnaOcena / podaci.brOdgovora).toFixed(2)
: 0;
$(`#prosecnaOcena${pitanje.slice(-1)}`).text(srednjaVrednost);
/*starting from here, until the end of updateResults function*/
const row = $(`#row${pitanje.slice(-1)}`);
row.removeClass("bg-danger bg-warning bg-success");
if (srednjaVrednost < 2.5) {
row.addClass("bg-danger");
} else if (srednjaVrednost >= 2.5 && srednjaVrednost <= 3.5) {
row.addClass("bg-warning");
} else {
row.addClass("bg-success");
}
});
}
$("#pollForm button").on("click", function (event) {
event.preventDefault();
saveAnswers();
});
</script>
I tried writing script that will find out the average of the grades given by user and it all works except the background giving part.
3