2014-02-06 48 views
0

我想學習JS/JQuery,所以我寫了這個小測驗應用程序。當用戶點擊提交時,我想強調錯誤的答案和正確的答案,但它不起作用。.addClass不能用收音機

這裏的功能:

function correctAnswer() { 
    var answer = questions[questionNumber].correct; 
    console.log("answer =" + answer) 
    $("#radio" + answer + "+ label").addClass(".correctAnswer"); 
    questionNumber++ 
}; 

function wrongAnswer() { 
    var answer = questions[questionNumber].correct; 
    var userAnswer = $(".list input[type=radio]:checked").val(); 
    if (answer != userAnswer) { 
     $(".list input[type=radio]:checked" + "+ label").addClass(".wrongAnswer"); 
    } 
    questionNumber++ 
}; 

這裏的CSS:

input[type=radio] + label { 
    font-family: Helvetica; 
color:#FFF; 
font-size: 18px; 
text-align: center; 
border-style: none; 
background: #4592FF; 
    margin-left: auto; 
    padding-top: 10px; 
    padding-bottom: 10px; 
    width:100%; 
    cursor: pointer; cursor: hand; 
} 
input[type=radio]:checked + label { 
background-image: none; 
background-color:#1646B5; 
} 
.correctAnswer { 
font-family: Helvetica; 
color:#FFF; 
font-size: 18px; 
text-align: center; 
border-style: none; 
    background: #4592FF; 
    margin-left: auto; 
    padding-top: 10px; 
    padding-bottom: 10px; 
    width:100%; 
    cursor: pointer; cursor: hand; 
} 
.wrongAnswer { 
font-family: Helvetica; 
color:#FFF; 
font-size: 18px; 
text-align: center; 
border-style: none; 
    margin-left: auto; 
padding-top: 10px; 
    padding-bottom: 10px; 
    width:100%; 
    cursor: pointer; cursor: hand; 
background:#FF4B19; 
} 

和HTML:

<ul class="list"> 
       <li> 
        <input type="radio" id="radio0" name="radios" value="all"> 
        <label for="radio0"></label> 
       </li> 
       <li>  
        <input type="radio" id="radio1" name="radios"value="false"> 
        <label for="radio1"></label> 
       </li> 
       <li> 
        <input type="radio" id="radio2" name="radios" value="true"> 
        <label for="radio2"></label> 
       </li> 
       <li> 
        <input type="radio" id="radio3" name="radios" value="true"> 
        <label for="radio3"></label> 
       </li> 
      </ul> 

所有的測驗數據的(問題/可能的答案/正確答案)被存儲在一個數組中。

對不起,CSS的縮進。我不知道它爲什麼顯示這種方式

+0

這裏有一個的jsfiddle如果有興趣。 http://jsfiddle.net/#&togetherjs=rP95pwLxKi – Chad

回答

2

你只需要提供類名即correctAnswer。你並不需要.

使用前綴它

$("#radio" + answer + "+ label").addClass("correctAnswer"); 

,而不是

$("#radio" + answer + "+ label").addClass(".correctAnswer"); 

同樣使用removeClass("wrongAnswer");

+0

謝謝@Satpal。我做了改變,但它仍然不起作用。 – Chad

+0

@Chad,你的選擇器是否正確。我猜它應該是'$(「#radio」+ answer +「label」)' – Satpal

+0

選擇器是正確的。我需要$(「#radio」+ answer +「+ label」),因爲這給了我正確的標籤。 – Chad