JavaScript / JQuery变量需要在点击时更改..删除旧号码添加新号码

时间:2012-01-19 01:21:41

标签: javascript jquery

基本上,我试图获取生成的随机数,以便在点击按钮后更改为另一个随机数。我也无法弄清楚如何取消选择我正在尝试如何在jQuery下面选择的表单。

var randomNum1 = Math.ceil(Math.random(20)*10000);
var randomNum2 = Math.ceil(Math.random(20)*10000);
var randomNum3 = Math.ceil(Math.random(20)*10000);
var randomNum4 = Math.ceil(Math.random(20)*10000);
$( "#race-again" ).click(function()
    {   
    $( ".one" ).css( { marginLeft: "0" });
    $( ".two" ).css({ marginLeft: "0" });
    $( ".three" ).css( { marginLeft: "0" });
    $( ".four" ).css( { marginLeft: "0" });
    $( "#slide2" ).animate( { marginTop: "0" }, { duration: 1000 });
    $( "#slide3" ).animate( { marginTop: "0" }, { duration: 1000 });
    $( "#slide4" ).animate( { marginTop: "0" }, { duration: 1000 });
    $( "#slide5" ).animate( { marginTop: "0" }, { duration: 1000 });
    $( "#betting-money" ).val("0");
    $( "#results" ).hide("");
    $( "#winner" ).hide("");
    $( "#next-end" ).hide("");
//trying to unselect the form input selection
 $("#race input option:selected").attr("selected", "");    
//new random number generated... which doesn't work
    var randomNum1 = Math.ceil(Math.random(20)*10000);
    var randomNum2 = Math.ceil(Math.random(20)*10000);
    var randomNum3 = Math.ceil(Math.random(20)*10000);
    var randomNum4 = Math.ceil(Math.random(20)*10000);
    }); 

3 个答案:

答案 0 :(得分:0)

我认为您在不同的范围内声明了不同的变量。尝试在第二次设置变量时删除var

randomNum1 = Math.ceil(Math.random(20)*10000);
randomNum2 = Math.ceil(Math.random(20)*10000);
randomNum3 = Math.ceil(Math.random(20)*10000);
randomNum4 = Math.ceil(Math.random(20)*10000);

这有助于查看您尝试取消选择的表单的HTML代码。

答案 1 :(得分:0)

在事件处理程序中,您声明了与全局变量同名的新局部变量。而不是:

var randomNum1 = ...

使用:

randomNum1 = ...

我不确定你想要什么看不见。如果它是一个输入元素,则它没有任何选项子元素。如果它是一个select元素,可以有选项子元素,则无法取消选择一个选项,您可以选择其他选项。

要从输入元素中删除焦点,请使用blur方法:

$("#race input").blur();

要取消选择选择选项,请选择其他选项:

$("#race select").val("0");

顺便说一下,你的随机数计算是有缺陷的。 Math.random方法不接受参数,并返回等于或大于零且小于1的值。如果使用Math.ceil来获取0..10000范围内的数字,则值0将比其他数字更少发生。

要获得0..10000范围内正确分布的数字,请使用Math.floor并乘以10001:

randomNum1 = Math.floor(Math.random() * 10001);

如果您打算在1..10000范围内获得结果,则应添加一个:

randomNum1 = Math.floor(Math.random() * 10000) + 1;

答案 2 :(得分:0)

关于选定问题:

使用

$("#race option:selected").prop("selected", false); 
  1. 选项不是输入的子项(选择器错误)
  2. 使用attr()时设置了html属性,但此属性只有一个有效值:"selected" prop() 设置"selected" -property而不是,其值可能为false or true