2016-09-11 20 views
0

Ich zeige Ergebnisse eines Quiz an und möchte, dass es ein grünes richtiges oder ein rotes falsches neben der entsprechenden Frage zeigt. Ich habe eine PHP-Datei, die die Fragen enthält, die wahr oder falsch zurückgibt, abhängig davon, ob die Benutzer richtig waren oder nicht. Mein Code unten zeigt, wie meine Ergebnisse angezeigt werden (in einer Tabelle, wobei "True" oder "False" angezeigt wird). Ich habe eine if-Anweisung ausprobiert, um zu sagen, ob dieses Feld wahr ist, mach es grün, sonst rot. Aber nichts funktioniert. Ich möchte nur 'wahr' in ein grünes 'richtig' und 'falsch' in ein rotes falsches verwandeln, indem ich jQuery benutze.Ändern der Textfarbe mit CSS in jQuery

Verwandte JavaScript-Code:

$("#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"); 
    } 
}) 

Verwandte HTML-Code:

<table id="tblextendedresults"> 
    <thead> 
     <th>Question</th> 
     <th>Your answer</th> 
     <th>Correct?</th> 
    </thead> 
    <br> 
    <tbody></tbody> 
</table> 

Auch 'extendedResults' ist ein Array, dass jede Frage und Antwort gewählt werden geschoben. Jede Hilfe wäre willkommen. Vielen Dank!

+1

jQuery CSS() Code gut aussieht, können Sie überprüfen, ob die $ (this) das eigentliche Feld ist? – ArturoO

+0

@ ArturoO es ist die if-Anweisung, die falsch ist, glaube ich. Die "extendedResults [i] [" correct "] gibt das richtige true/false aus, je nachdem, ob die Antwort korrekt war oder nicht, aber die if-Anweisung ändert diese Rückgabe überhaupt nicht. Und ich weiß auch nicht, wie ich den Text ändern soll richtig zu sagen statt wahr – Brittany

Antwort

3

Versuchen last:child Selector - $("#tblextendedresults tbody tr:last-child td:last-child")

$(this) in Ihrem Code bezieht sich nicht das entsprechende Element.

JSFiddle

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"); 
 
    } 
 
});
<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>

+0

Vielen Dank! Ich dachte, so etwas könnte der Fall sein, aber ich war mir nicht sicher, wie ich das machen sollte.Eine Idee, ob ich die "wahren" Elemente "richtig" und "falsch" sagen könnte "Elemente sagen stattdessen" falsch "..? – Brittany

+0

fügen Sie einfach' .html() 'hinzu, siehe aktualisierte Antwort –