我希望我的函数为我的javascript函数实现的是每秒随机减去或添加(随机数)到div中保存的数字。
这是我到目前为止所拥有的。
它不起作用,似乎将数字附加到div值(100)的末尾,并且它也没有考虑到我希望它随机添加或减去(它只是添加在那一刻)
setInterval(function(){
random = (Math.floor((Math.random()*15)+1));
currentnumber = document.getElementById('number');
document.getElementById('number').innerHTML = currentnumber + random;
}, 1000);
答案 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);
答案 1 :(得分:1)
.innerHTML
返回一个字符串,您需要将其解析为整数以执行加法或减法。看看下面的SO问题中列出的一些方法
答案 2 :(得分:1)
currentnumber
是一个DOM对象,您无法将其添加到数字中。
var div = document.getElementById('number');
div.innerHTML = Number(div.innerHTML) + 3;
请注意,您收到innerHTML
的{{1}},将其转换为div
,将随机数添加到其中,然后将Number()
设置为新的div.innerHTML
值。
答案 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,然后将字符串解析为整数。