2016-09-11 1 views
0

J'affiche les résultats d'un quiz et je veux qu'il affiche un vert correct ou un rouge incorrect à côté de la question correspondante. J'ai un fichier PHP contenant les questions, qui renvoie vrai ou faux selon que la réponse des utilisateurs était correcte ou non. Mon code ci-dessous montre comment mes résultats sont affichés (dans un tableau, avec vrai ou faux étant montré). J'ai essayé une instruction if pour dire si ce champ est vrai, le rendre vert, sinon rouge. Mais rien ne fonctionne. Je veux juste transformer 'vrai' en vert 'correct' et 'faux' en rouge incorrect en utilisant jQuery.Modification de la couleur du texte avec CSS dans jQuery

code JavaScript connexes:

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

code HTML connexe:

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

également 'extendedResults' est un tableau que chaque question et réponse choisie sont poussés à. Toute aide serait appréciée. Merci!

+1

Code css() jQuery semble bien, pouvez-vous vérifier que le $ (ce) est le champ réel? – ArturoO

+0

@ArturoO c'est l'affirmation if qui est fausse je crois. le "extendedResults [i] [" correct "] renvoie le vrai vrai/faux selon si la réponse était correcte ou non, mais l'instruction if n'est pas du tout en train de modifier ce retour et je ne sais pas comment changer le texte dire vrai au lieu de vrai – Brittany

Répondre

3

Essayez d'utiliser last:child Sélecteur - $("#tblextendedresults tbody tr:last-child td:last-child")

$(this) dans votre code ne renvoie pas l'élément approprié.

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

Merci beaucoup! Je pensais que quelque chose comme ça pourrait être le cas, mais je ne savais pas comment le faire.Toute idée sur si je pouvais faire les «vrais» éléments disent «correct» et le «faux» 'les éléments disent' incorrect 'à la place ..? – Brittany

+0

ajoutez simplement '.html()', Voir la mise à jour –