我需要帮助来了解为什么我的JavaScript代码在一种情况下与另一种情况下不起作用

时间:2019-04-13 20:33:35

标签: javascript function scope

//var display = document.getElementById("display"); 
//var question1 = document.quiz.question1.value;                  
//var question2 = document.quiz.question2.value;   
//var question3 = document.quiz.question3.value;   
//var submit = document.getElementById("submit");          
//var correct = 0; 



function check() {   

var display = document.getElementById("display"); 
var question1 = document.quiz.question1.value;                  
var question2 = document.quiz.question2.value;   
var question3 = document.quiz.question3.value;   
var submit = document.getElementById("submit");          
var correct = 0;



if (question1 == "Asmara" || question1 == "asmara") {           
    correct++;     
}  

if(question2 == "Lisbon") {        
    correct++;   
}

if(question3 == "Trump") { 
    correct++;  
}

alert("You got " + correct + "/3 correct!");        

}

这是我的代码,每当我在函数内部使用变量运行它时,它就会起作用,但是当我在(全局)外部使用变量运行它时,它似乎不起作用。我是javascript新手,任何建议都值得赞赏!另外请注意,我正在使用事件从html页面调用此函数。

1 个答案:

答案 0 :(得分:0)

var display = document.getElementById("display"); 
var question1 = document.quiz.question1.value;                  
var question2 = document.quiz.question2.value;   
var question3 = document.quiz.question3.value;   
var submit = document.getElementById("submit");          
var correct = 0; 



function check(display, question1, question2, question3, submit, correct) {   
if (question1 == "Asmara" || question1 == "asmara") {           
    correct++;     
}  

if(question2 == "Lisbon") {        
    correct++;   
}

if(question3 == "Trump") { 
    correct++;  
}

alert("You got " + correct + "/3 correct!");      
}  

如果我没记错的话,您需要通过变量作为函数的参数。因此,无论您在何处调用函数,都应将函数调用更改为

check(display, question1, question2, question3, submit, correct)