Javascript每秒随机添加/减去一个数字

时间:2014-01-21 23:44:01

标签: javascript random

我希望我的函数为我的javascript函数实现的是每秒随机减去或添加(随机数)到div中保存的数字。

这是我到目前为止所拥有的。

它不起作用,似乎将数字附加到div值(100)的末尾,并且它也没有考虑到我希望它随机添加或减去(它只是添加在那一刻)

    setInterval(function(){
        random = (Math.floor((Math.random()*15)+1)); 
        currentnumber = document.getElementById('number');

        document.getElementById('number').innerHTML =  currentnumber + random;

     }, 1000);

4 个答案:

答案 0 :(得分:7)

将当前值解析为整数,然后执行另一个math.random并使用它来决定是否为正数。最后,您需要使用currentnumber的innerHTML,而不是整个节点。所以这样的事情应该有效:

setInterval(function(){
    random = (Math.floor((Math.random()*15)+1));
    var plusOrMinus = Math.random() < 0.5 ? -1 : 1;
    random = random * plusOrMinus; 
    currentnumber = document.getElementById('number');

    document.getElementById('number').innerHTML =  parseInt(currentnumber.innerHTML) + random;

 }, 1000);

WORKING FIDDLE

答案 1 :(得分:1)

.innerHTML返回一个字符串,您需要将其解析为整数以执行加法或减法。看看下面的SO问题中列出的一些方法

How do I convert a string into an integer in JavaScript?

答案 2 :(得分:1)

currentnumber是一个DOM对象,您无法将其添加到数字中。

var div = document.getElementById('number');
div.innerHTML = Number(div.innerHTML) + 3;

请注意,您收到innerHTML的{​​{1}},将其转换为div,将随机数添加到其中,然后将Number()设置为新的div.innerHTML值。

http://jsfiddle.net/9LqQG/1/

答案 3 :(得分:0)

也许尝试这样的事情:

setInterval(function(){
    random = (Math.floor((Math.random()*15)+1)); 
    currentnumber = parseInt(document.getElementById('number').innerHTML);

    document.getElementById('number').innerHTML =  currentnumber + random;
 }, 1000);

您的currentnumber变量需要获取元素的innerHTML,然后将字符串解析为整数。

jsFiddle