2016-11-07 61 views
-3

我基本上制作了一个程序,根据用户想要在屏幕上显示多少球来生成随机球数,然后用户必须按顺序键入球数,如果他猜对了,他会赢,否则他输。但是,jQuery对我来说有点困惑。我如何确切地将x[i]变量的值分配给程序底部的jQuery?噢,还有,球和输入栏的数量应该根据用户输入的最大球数来显示,但是真的有可能使用html和jQuery数组吗?因此,如果用户键入3,只显示3个输入,或者当他键入6时,只显示6个?谢谢如何在jQuery中调用javascript变量?

<html> 
<head> 
</head> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" > 
window.onload=draw; 
function draw(){ 
    var canvas= document.getElementById('canvas'); 
    var ctx=canvas.getContext('2d'); 
    var id; 
    var x; 
    var y; 
    var r; 
    var i; 
    var balls=[{"id":1,"x":85,"y":90,"r":40},{"id":2,"x":180,"y":90,"r":40},{"id":3,"x":270,"y":90,"r":40},{"id":4,"x":360,"y":90,"r":40},{"id":5,"x":450,"y":90,"r":40},{"id":6,"x":535,"y":90,"r":40},{"id":7,"x":623,"y":90,"r":40},{"id":8,"x":710,"y":90,"r":40},{"id":9,"x":85,"y":190,"r":40},{"id":10,"x":180,"y":190,"r":40},{"id":11,"x":270,"y":190,"r":40},{"id":12,"x":360,"y":190,"r":40},{"id":13,"x":450,"y":190,"r":40},{"id":14,"x":535,"y":190,"r":40},{"id":15,"x":623,"y":190,"r":40},{"id":16,"x":710,"y":190,"r":40},{"id":17,"x":450,"y":190,"r":40},{"id":18,"x":535,"y":190,"r":40},{"id":19,"x":623,"y":190,"r":40},{"id":20,"x":710,"y":190,"r":40}]; 
    var texts=[]; 
     var i; 
    for(i=0;i<balls.length;i++){ 
     texts[i]=i; 
    } 

    var choose; 
    var x=[]; 
    choose=parseFloat(prompt("enter the number of balls u want to see")); 
    for (i=0; i<=choose; i++) { 
     x[i]=Math.floor((Math.random() * 19) + 1); 
     for (var k=0; k<balls.length; k++) { 
     var b=balls[k]; 
     if(b.id==x[i]){     /*here is the issue*/ 
      ctx.fillStyle="#800000"; 
      ctx.strokeStyle="#000000"; 
      ctx.beginPath(); 
      ctx.arc(b.x,b.y,b.r,0, 2 * Math.PI); 
      ctx.stroke(); 
      ctx.fill(); 
      ctx.fillStyle = 'black'; 
      ctx.fillText(b.id, b.x, b.y); 
     } 
     } 

    } 
    } 
draw() 
</script> 
<body> 
<div id=leftside" width="900" height="1000" style="border: 2px solid #000000"> 
<canvas id="canvas" width="800" height="800" style="border: 2px solid #000000"> 
</canvas> 
<div id="rightside" width="300" height="800" style="border 2px solid #000000; float: right;"> 
<<form name="guessForm" id="guessForm" method="POST" action=""> 
<label>Enter a number: </label> 
<input type="text" name="userNumber" id="userNumber"> 
<input type="button" id="verifyBtn" value="verify"> 
</form> 
<form name="guessForm" id="guessForm2" method="POST" action=""> 
<label>Enter a number: </label> 
<input type="text" name="userNumber2" id="userNumber2"> 
<input type="button" id="verifyBtn2" value="verify"> 
</form> 
<form name="guessForm" id="guessForm3" method="POST" action=""> 
<label>Enter a number: </label> 
<input type="text" name="userNumber3" id="userNumber3"> 
<input type="button" id="verifyBtn3" value="verify"> 
</form> 
<form name="guessForm" id="guessForm4" method="POST" action=""> 
<label>Enter a number: </label> 
<input type="text" name="userNumber4" id="userNumber4"> 
<input type="button" id="verifyBtn4" value="verify"> 
</form> 
<form name="guessForm" id="guessForm5" method="POST" action=""> 
<label>Enter a number: </label> 
<input type="text" name="userNumber5" id="userNumber5"> 
<input type="button" id="verifyBtn5" value="verify"> 
</form> 
<form name="guessForm" id="guessForm6" method="POST" action=""> 
<label>Enter a number: </label> 
<input type="text" name="userNumber6" id="userNumber6"> 
<input type="button" id="verifyBtn6" value="verify"> 
</form> 
<hr> 
the result is: 
<div id="result" style="font-size: 14px"></div> 
</div> 
</div> 
</body> 
<script type="text/javascript"> 

    $(document).ready(function(){ 

      $("#verifyBtn").click(function(){ 

       if($("#userNumber").val()==x[0]){ 
         $("#result").css({color:'green'}); 
         $("#result").text("correct"); 
        } 

        else{ 
         $("#result").css({color:'red'}); 
         $("#result").text("sorry: try again"+ " correct number was "+ x); 
        } 

      }) 
      $("#verifyBtn2").click(function(){ 

       if($("#userNumber2").val()==x[1]){ 
         $("#result").css({color:'green'}); 
         $("#result").text("yeah"); 
        } 

        else{ 
         $("#result").css({color:'red'}); 
         $("#result").text("sorry: try again"+ " correct number was "+ systemNumber); 
        } 

      }) 
      $("#verifyBtn3").click(function(){ 

       if($("#userNumber3").val()==x[2]){ 
         $("#result").css({color:'green'}); 
         $("#result").text("yeah"); 
        } 

        else{ 
         $("#result").css({color:'red'}); 
         $("#result").text("sorry: try again"+ " correct number was "+ x); 
        } 

      }) 
      $("#verifyBtn4").click(function(){ 

       if($("#userNumber4").val()==x[3]){ 
         $("#result").css({color:'green'}); 
         $("#result").text("yeah"); 
        } 

        else{ 
         $("#result").css({color:'red'}); 
         $("#result").text("sorry: try again"+ " correct number was "+ x[3]); 
        } 

      }) 
      $("#verifyBtn5").click(function(){ 

       if($("#userNumber5").val()==x[4]){ 
         $("#result").css({color:'green'}); 
         $("#result").text("yeah"); 
        } 

        else{ 
         $("#result").css({color:'red'}); 
         $("#result").text("sorry: try again"+ " correct number was "+ x[4]); 
        } 

      }) 
      $("#verifyBtn6").click(function(){ 

       if($("#userNumber6").val()==x[5]){ 
         $("#result").css({color:'green'}); 
         $("#result").text("yeah"); 
        } 

        else{ 
         $("#result").css({color:'red'}); 
         $("#result").text("sorry: try again"+ " correct number was "+ x[5]); 
        } 

      }) 
    }) 
    </script> 

</html> 
+0

小旁注输入正确的数字:' var i'被声明两次。 –

+0

Firstable - 你的'x变量'不能在jQuery部分实现。 – mamosek

回答

0

我真的不能真正查看你的整个代码。尝试尽可能具体和通用,以便其他人也可以使用你的问题。至于jQuery,这是如何获得输入的值并将其存储到变量x中。

<html> 
    <head> 
    <script type="text/javascript" src="jquery.js"></script> 
    <script type="text/javascript" > 
     $(function(){ 
     var x = $('#userNumber').val(); 
     alert(x); 
     }); 
    </script> 
    </head> 
    <body> 
     <input type="text" name="userNumber" id="userNumber" value="5"> 
     </form> 
     <body> 
</html> 

我把一个$(function(){}); (https://api.jquery.com/ready/),因为我想DOM已准备好,否则输入未定义。

+0

是的,我知道如何从HTML中得到它,但你如何从JavaScript获得它? –

+0

Javascript和jquery都是同一种语言。他们只是有不同的语法。他们可以分享变量。所以试试这段代码: BehaminB

0

Firstable - 您的x variable无法在jQuery部分中找到。 在你的代码中它是一个局部变量。

你的代码是相当混乱,但first and dirty修复你可以做,到了我的心是做一个全局变量,并在绘制函数结束设置它的值是像X

window.onload=draw; 
var xArr; 

,然后在绘制函数结束时

xArr = x; 

之后,您应该将jQuery代码中的所有“x”出现替换为xArr。

它可以快速修复您的代码。 而且它也可以快速修复以获得正确数量的球和用户输入验证。

它应该是这个样子

window.onload=draw; 
    var xArr 
    var BallsNumber = 0; 
function draw(){ 
    var canvas= document.getElementById('canvas'); 
    var ctx=canvas.getContext('2d'); 
    var id; 
    var x; 
    var y; 
    var r; 
    var i; 

    var balls=[{"id":1,"x":85,"y":90,"r":40},{"id":2,"x":180,"y":90,"r":40},{"id":3,"x":270,"y":90,"r":40},{"id":4,"x":360,"y":90,"r":40},{"id":5,"x":450,"y":90,"r":40},{"id":6,"x":535,"y":90,"r":40},{"id":7,"x":623,"y":90,"r":40},{"id":8,"x":710,"y":90,"r":40},{"id":9,"x":85,"y":190,"r":40},{"id":10,"x":180,"y":190,"r":40},{"id":11,"x":270,"y":190,"r":40},{"id":12,"x":360,"y":190,"r":40},{"id":13,"x":450,"y":190,"r":40},{"id":14,"x":535,"y":190,"r":40},{"id":15,"x":623,"y":190,"r":40},{"id":16,"x":710,"y":190,"r":40},{"id":17,"x":450,"y":190,"r":40},{"id":18,"x":535,"y":190,"r":40},{"id":19,"x":623,"y":190,"r":40},{"id":20,"x":710,"y":190,"r":40}]; 
    var texts=[]; 
    for(i=0;i<balls.length;i++){ 
     texts[i]=i; 
    } 
     var x=[]; 
    var choose; 



while(true){ 
    choose=parseFloat(prompt("enter the number of balls u want to see (less than 20)")); 
    if(choose < 20){ 
     break; 
    }else{ 
     alert("Please enter a valid number"); 
    } 
} 

while(BallsNumber<choose){ 
    for (i=0; i<choose; i++) { 
     x[i]=Math.floor((Math.random() * 19) + 1); 
     for (var k=0; k<balls.length; k++) { 

     var b=balls[k]; 
     if(b.id==x[i]){     /*here is the issue*/ 
      ctx.fillStyle="#800000"; 
      ctx.strokeStyle="#000000"; 
      ctx.beginPath(); 
      ctx.arc(b.x,b.y,b.r,0, 2 * Math.PI); 
      ctx.stroke(); 
      ctx.fill(); 
      ctx.fillStyle = 'black'; 
      ctx.fillText(b.id, b.x, b.y); 
      BallsNumber++; 
     } 
     } 

    } 
} 


    xArr = x; 
    } 

draw() 

    $(document).ready(function(){ 

      $("#verifyBtn").click(function(){ 

       if($("#userNumber").val()==xArr[0]){ 
         $("#result").css({color:'green'}); 
         $("#result").text("correct"); 
        } 

        else{ 
         $("#result").css({color:'red'}); 
         $("#result").text("sorry: try again"+ " correct number was "+ xArr); 
        } 

      }) 
      $("#verifyBtn2").click(function(){ 

       if($("#userNumber2").val()==xArr[1]){ 
         $("#result").css({color:'green'}); 
         $("#result").text("yeah"); 
        } 

        else{ 
         $("#result").css({color:'red'}); 
         $("#result").text("sorry: try again"+ " correct number was "+ systemNumber); 
        } 

      }) 
      $("#verifyBtn3").click(function(){ 

       if($("#userNumber3").val()==xArr[2]){ 
         $("#result").css({color:'green'}); 
         $("#result").text("yeah"); 
        } 

        else{ 
         $("#result").css({color:'red'}); 
         $("#result").text("sorry: try again"+ " correct number was "+ xArr); 
        } 

      }) 
      $("#verifyBtn4").click(function(){ 

       if($("#userNumber4").val()==x[3]){ 
         $("#result").css({color:'green'}); 
         $("#result").text("yeah"); 
        } 

        else{ 
         $("#result").css({color:'red'}); 
         $("#result").text("sorry: try again"+ " correct number was "+ xArr[3]); 
        } 

      }) 
      $("#verifyBtn5").click(function(){ 

       if($("#userNumber5").val()==x[4]){ 
         $("#result").css({color:'green'}); 
         $("#result").text("yeah"); 
        } 

        else{ 
         $("#result").css({color:'red'}); 
         $("#result").text("sorry: try again"+ " correct number was "+ xArr[4]); 
        } 

      }) 
      $("#verifyBtn6").click(function(){ 

       if($("#userNumber6").val()==xArr[5]){ 
         $("#result").css({color:'green'}); 
         $("#result").text("yeah"); 
        } 

        else{ 
         $("#result").css({color:'red'}); 
         $("#result").text("sorry: try again"+ " correct number was "+ xArr[5]); 
        } 

      }) 
    }) 

你有一个全局变量BallsNumber这样你就可以找到一个解决方案,使一个循环营造的“验证”