【问题标题】:unknown issue w/ JavaScript random number function带有 JavaScript 随机数函数的未知问题
【发布时间】:2012-08-23 12:15:10
【问题描述】:
var randNum = function(){
var max = document.getElementById('max').value;
var min = document.getElementById('min').value;
var reps = document.getElementById('reps').value;
var i;
for (i=0; i<reps; i++){
    var num = min + Math.floor(Math.random() * (max - min + 1)); //rand # 0-(max-1)
    addTXT(num);
}
};

这个函数应该将输入到 ID 为“min”、“max”和“reps”的文本框中的数字,并使用它们来产生一些随机数。它不会向 HTML 文档写入任何内容。 addTXT() 函数应该将数字写入 div,我知道它可以工作,因为在此之前我已经很好地使用了它。任何帮助,将不胜感激。另外,我使用 javascript 还不到一周,所以我怀疑这个问题真的很明显,我只是没有看到它。

var addTXT = function(newText){
var outputDiv=document.getElementById("console");
var oldText = outputDiv.innerHTML;
outputDiv.innerHTML = newText + oldText;
};

【问题讨论】:

    标签: javascript html random numbers


    【解决方案1】:

    使用parseInt()将字符串值解析为整数:

    var max = parseInt(document.getElementById('max').value);
    var min = parseInt(document.getElementById('min').value);
    var reps = parseInt(document.getElementById('reps').value);
    

    DEMO.

    【讨论】:

    • 我在没有 parseInt 的情况下声明了其他类似的数字变量,它工作得很好。我确实实施了这一点,以防万一有多个问题。不用找了。不过,谢谢,这可能对我一直在做的其他事情有用。 :)
    • @TwoRoses:你能把你的代码和我的demo比较一下吗?它对我来说很好。所以它一定是你的问题中没有包含的东西。
    • 在这里托管:freetexthost.com/ovgggch6sb 是我页面的整个脚本部分。不幸的是,其他事情现在也开始出现问题。我的主要问题是找到一种方法来使用三种不同的 if 语句来修复错误,但不能使用 else 语句并让它们都适用。我已经注释掉了错误检查的东西以保持它的工作。也许我应该从更简单的开始......
    • 你在哪里实际上打电话给randNum()
    • 在 HTML 中。
    【解决方案2】:

    您从哪里得到问题?如果您不确定,请尝试在代码中的某些位置发出警报。

    例如:

    var randNum = function(){
    alert('Function is triggered');
    var max = document.getElementById('max').value;
    var min = document.getElementById('min').value;
    var reps = document.getElementById('reps').value;
    var i;
    for (i=0; i<reps; i++){
        var num = min + Math.floor(Math.random() * (max - min + 1)); //rand # 0-(max-1)
        alert(num);
        addTXT(num);
    }
    };
    

    如果你的addTxt函数不起作用,试试jQuery的方式

    var randNum = function(){
    alert('Function is triggered');
    var max = document.getElementById('max').value;
    var min = document.getElementById('min').value;
    var reps = document.getElementById('reps').value;
    var i;
    for (i=0; i<reps; i++){
        var num = min + Math.floor(Math.random() * (max - min + 1)); //rand # 0-(max-1)
        alert(num);
        $('#console').append(num);
    }
    };
    

    【讨论】:

    • 我在循环中尝试了一个警报,并在声明 'var i;' 之后尝试了一个警报检查其他三个变量。无论是否使用 parseInt 来声明它们,都不会显示警报框或文本。
    • jQuery 也不起作用。至少不使用 Google API 链接版本。我不知道这是否有什么不同。不过,我想尽可能将所有内容保存在一个文件中。
    猜你喜欢
    • 2019-11-30
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 2022-08-09
    • 2021-11-06
    • 1970-01-01
    相关资源
    最近更新 更多