当前位置: 代码迷 >> JavaScript >> Javascript变量未按预期添加值
  详细解决方案

Javascript变量未按预期添加值

热度:55   发布时间:2023-06-05 14:23:11.0

我在html和javascript HTML中有此代码

 function getResult() { let answer_one = document.getElementById("question_one").value; let correct_ans = 0; let result = "You answered " + correct_ans + " correctly."; if (answer_one === "abuja") { correct_ans++; } document.getElementById("result").innerHTML = result; } 
 <div class="container"> <div class="question1"> <p>What is the capital of Nigeria</p><br> <input type="text" id="question_one"> </div> <button id="button" onclick="getResult();">Submit</button> </div> <!--end of container--> <div class="button_after"> <h1 id="result"></h1> </div> <!--end of button_after--> 

我的问题是,当我在文本框中输入正确的答案时,correct_ans变量没有添加

检查正确答案后,应初始化变量result

 function getResult() { let correct_ans = 0; let answer_one = document.getElementById("question_one").value; if (answer_one === "abuja") correct_ans++; let result = "You answered " + correct_ans + " correctly."; document.getElementById("result").innerHTML = result; } 
 <div class="container"> <div class="question1"> <p>What is the capital of Nigeria</p><br> <input type="text" id="question_one"> </div> <button id="button" onclick="getResult();">Submit</button> </div> <!--end of container--> <div class="button_after"> <h1 id="result"></h1> </div> <!--end of button_after--> 

在更新变量abuja之前,先声明了变量correct_ans 将其放在if条件之后。 如果您要添加其他问题,则需要在函数中添加正确的声明correct_ans = 0 ,否则您总是会得到0或1。

 function getResult() { let answer_one = document.getElementById("question_one").value; let correct_ans = 0; if (answer_one === "abuja") { correct_ans++; } let result = "You answered " + correct_ans + " correctly."; document.getElementById("result").innerHTML = result; } 
 <div class="container"> <div class="question1"> <p>What is the capital of Nigeria</p><br> <input type="text" id="question_one"> </div> <button id="button" onclick="getResult();">Submit</button> </div> <!--end of container--> <div class="button_after"> <h1 id="result"></h1> </div> <!--end of button_after--> 

在您的代码中,对结果的求值是在correct_ans增量之前。 试试这个吧。

function getResult() {
  let answer_one = document.getElementById("question_one").value;
  let correct_ans = 0;
  let result = "";

  if (answer_one === "abuja") {
    correct_ans++;
  }
  result = You answered " + correct_ans + " correctly.
  document.getElementById("result").innerHTML = result;
}
  相关解决方案