簡體   English   中英

2 個函數如何在 JavaScript 中共享公共變量

[英]how can 2 function share common variable in JavaScript

    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 部分。 從第一個開始,兩個數組分別是問題和溶膠。 代碼正在成功執行,但我在驗證部分有問題。 為了驗證,我想在按下 HTML 按鈕標簽中的提交按鈕時將 qno1 值傳遞給驗證函數。 請幫助我執行此代碼,以及我們如何在 2 個函數之間共享公共變量。

您需要將 vars 范圍限定在您的函數之外,以便您可以在兩者中使用它們。

        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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM