2016-09-11 15 views
0

クイズの結果を表示していて、対応する質問の横に緑色の正しいか赤色の誤りが表示されます。私は質問を保持しているPHPファイルを持っていますが、ユーザーの答えが正しいかどうかに応じてtrueまたはfalseを返します。以下の私のコードは、私の結果がどのように表示されるかを示しています(テーブルにtrueまたはfalseが表示されています)。私はif文を試して、そのフィールドがtrueの場合は緑、それ以外の場合は赤とします。しかし、何も動作しません。私はちょうどjQueryを使用して、 '真'を緑の '正解'に、 '偽'を赤の誤ったものに変換したいとします。jQueryのCSSでテキストの色を変更する

関連する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> 

また 'extendedResults' はそれぞれ質問と選ばれた解答がにプッシュされていることを配列です。 ご協力いただければ幸いです。ありがとう!

+1

jQueryのCSS()のコード罰金に見える、あなたは$(これは)実際のフィールドであることを確認することができますか? – ArturoO

+0

@ArturoOそのif文は間違っていると私は信じています。 "extendedResults [i] [" correct "]は、答えが正しいかどうかによって正しいtrue/falseを返しますが、if文はこの戻り値をまったく変更しません。また、テキストの変更方法もわかりません言い換えれば、真実の代わりに正しいこと – Brittany

答えて

3

last:childセレクタを使用してみてください - $("#tblextendedresults tbody tr:last-child td:last-child")

$(this)あなたのコードには、適切な要素を指すものではありません。

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

私はこのような事があるかもしれないと思っていましたが、それをどうやって行うのかはわかりませんでした。 'の要素は代わりに'間違った 'と言います。? – Brittany

+0

'.html()'を追加するだけです。 –

関連する問題