Поэтому я пытаюсь увеличить значение числа с интервалом в 1 секунду с десятичным числом между (0,01 и 0,05), и я не могу понять этого.
Единственное, что он делает, это показать мне числа от 0,01 до 0,05 вместо того, чтобы добавлять их в целые числа.
setInterval (function myFunction() {
var number = 0;
document.getElementById("computerScore").innerHTML = number +
Math.floor((Math.random() * 5) + 1)/100;
}, 1000)
<b>computer score:</b><p id="computerScore">0</p>
Ваша проблема заключается в том, что вы устанавливаете number
до 0
в каждом исполнении, тогда как оно должно быть текущим значением.
Вам нужно присвоить Number(document.getElementById("computerScore").textContent)
, чтобы он продолжал обновление с добавленным случайным числом.
Обратите внимание, что я использовал textContent
который рекомендуется здесь, поскольку он содержит только текстовое содержимое элемента, избегающего HTML-элементов.
setInterval (function myFunction() {
var number = Number(document.getElementById("computerScore").textContent);
document.getElementById("computerScore").textContent= number +
Math.floor((Math.random() * 5) + 1)/100;
}, 1000)
Демо - версия:
setInterval (function myFunction() {
var number = Number(document.getElementById("computerScore").textContent);
document.getElementById("computerScore").textContent = number +
Math.floor((Math.random() * 5) + 1)/100;
}, 1000)
<b>computer score:</b><p id="computerScore">0</p>
Вам нужно объявить номер за пределами setTimeout:
var number = 0;
setInterval (function myFunction() {
number = number +
Math.floor((Math.random() * 5) + 1)/100;
document.getElementById("computerScore").innerHTML = number;
}, 1000)
Вы устанавливаете number
0 при каждом вызове функции, вы должны определить number
за пределами интервала
var number = 0;
setInterval(function myFunction() {
document.getElementById("computerScore").innerHTML = number +
Math.floor((Math.random() * 5) + 1) / 100;
}, 1000)
Вам нужно получить предыдущее значение из вашего счета и добавить к нему свое случайное число:
PS: Я добавил .toFixed(2)
чтобы ограничить результат двумя десятичными знаками.
let score = document.getElementById("computerScore");
setInterval (function myFunction() {
score.innerHTML = (+score.innerHTML + Math.floor((Math.random() * 5) + 1)/100).toFixed(2);
}, 1000)
<b>computer score:</b><p id="computerScore">0</p>
вы можете попробовать что-то вроде этого. Вы забыли установить число до 0. Затем вам нужно увеличить свой номер со случайным значением, которое вы получаете.
https://codepen.io/anon/pen/dgJpep
JS :
var number = 0;
function check(){
setInterval(function(){
number = number + Math.floor((Math.random() * 5) + 1)/100;
}, 3000);
}
check();
setInterval(function(){
document.getElementById('computerScore').innerHTML = number;
});
Дайте мне знать, если это сработает для вас!
Number
чтобы анализировать число из строки HTML.