2个函数如何在JavaScript中共享公共变量

时间:2020-10-19 21:26:21

标签: javascript html function

    var ques=["Qno 1", "Qno 2","Qno 3","Qno 4","Qno 5","Qno 6","Qno 7","Qno 8","Qno 9","Qno 10"];
var ans  =[1,2,3,4,5,6, 7,8,9,10];
function random()
{
  var qno=Math.floor((Math.random() * 10) );
  return qno;
}

function validate()//here need help
{
  var Rans=document.getElementById("numb").value;
  if (Rans == ans[qno])
     alert("validated!!!");
  else 
     alert("Not a valid entry.. declined!!!");
}
function execution()
{
  var x = document.getElementById("myDIV");
  if (x.style.display === "none") { x.style.display = "block";} 
  else {x.style.display = "none";}
  
  var qno1=random(); 
  document.getElementById("demo").innerHTML = ques[qno1];
  
  var qno2=random(); 
  if(qno1==qno2)
    qno2=random();
   document.getElementById("demos").innerHTML = ques[qno2];
}

在上面的代码中,我试图生成随机问题。这只是我代码的javascript部分。 首先从2个数组开始分别是问题和sol。代码成功执行,但是验证部分出现问题。为了进行验证,我想在按HTML按钮标记中的提交按钮时将qno1值传递给验证功能。请帮助我执行此代码,以及如何在两个函数之间共享公共变量。

1 个答案:

答案 0 :(得分:0)

您需要将var的作用域限定在函数之外,以便可以在两个函数中同时使用它们。

        var ques=["Qno 1", "Qno 2","Qno 3","Qno 4","Qno 5","Qno 6","Qno 7","Qno 8","Qno 9","Qno 10"];
var ans  =[1,2,3,4,5,6, 7,8,9,10];

//move scope of vars
var qno1

function random()
{
  var qno=Math.floor((Math.random() * 10) );
  return qno;
}

function validate (qno)// use it here by passing it in
{
  var Rans=document.getElementById("numb").value;
  if (Rans == ans[qno])
     alert("validated!!!");
  else 
     alert("Not a valid entry.. declined!!!");
}
function execution()
{
  var x = document.getElementById("myDIV");
  if (x.style.display === "none") { x.style.display = "block";} 
  else {x.style.display = "none";}
  
// set here
  qno1=random(); 
  document.getElementById("demo").innerHTML = ques[qno1];
  
  var qno2=random(); 
  if(qno1==qno2)
    qno2=random();
   document.getElementById("demos").innerHTML = ques[qno2];
}

// call it wherever
validate(qno1)
相关问题