我正在显示测验结果,并希望它在相应问题旁边显示绿色正确或红色不正确。我有一个包含问题的PHP文件,根据用户的回答是否正确,返回true或false。我的下面的代码显示了我的结果显示方式(在表格中,显示了true或false)。我试过if语句来说明该字段是否等于true,将其设为绿色,否则为红色。但没有任何作用。我只想改变真实的'成为一个绿色的正确的'并且' false'使用jQuery变成红色不正确。
相关的JavaScript代码:
$("#tblextendedresults tbody").prepend("<br>")
$.each(extendedResults, function(i) {
$("#tblextendedresults tbody").append("<tr><td>" + extendedResults[i]["question"] + "</td><td>" + extendedResults[i]["your_answer"] + "</td><td>" + extendedResults[i]["correct"] + "</td></tr>")
if (extendedResults[i]["correct"] == "true") {
$(this).css("color", "green");
}
else {
$(this).css("color", "red");
}
})
相关HTML代码:
<table id="tblextendedresults">
<thead>
<th>Question</th>
<th>Your answer</th>
<th>Correct?</th>
</thead>
<br>
<tbody></tbody>
</table>
还有&#39; extendedResults&#39;是一个数组,每个问题和选择的答案都被推送到。 任何帮助,将不胜感激。谢谢!
答案 0 :(得分:3)
尝试使用last:child
选择器 - $("#tblextendedresults tbody tr:last-child td:last-child")
$(this)
没有引用相应的元素。
var extendedResults = [{
"question": "Question1",
"your_answer": "your_answer1",
"correct": true
}, {
"question": "Question2",
"your_answer": "your_answer2",
"correct": false
}, {
"question": "Question3",
"your_answer": "your_answer3",
"correct": true
}];
$("#tblextendedresults tbody").prepend("<br>")
$.each(extendedResults, function(i) {
$("#tblextendedresults tbody").append("<tr><td>" + extendedResults[i]["question"] + "</td><td>" + extendedResults[i]["your_answer"] + "</td><td>" + extendedResults[i]["correct"] + "</td></tr>")
if (extendedResults[i]["correct"] == true) {
$("#tblextendedresults tbody tr:last-child td:last-child").css("color", "green").html("Correct");
} else {
$("#tblextendedresults tbody tr:last-child td:last-child").css("color", "red").html("Incorrect");
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table id="tblextendedresults">
<thead>
<th>Question</th>
<th>Your answer</th>
<th>Correct?</th>
</thead>
<br>
<tbody></tbody>
</table>
&#13;