我正在尝试使用setInterval增加数字的值来重复执行。
var x = document.getElementById("text");
var y = setInterval(counter, 1000);
function counter() {
var a = document.getElementById("number");
x.innerHTML += a.value * 2;
}
var a是输入字段,而var x是段落。当我单击调用该函数的计数器按钮时,段落中的值不会改变,但会开始循环相同的数字。
例如,如果段落中的值为2,并且输入字段中的值为2,则我的结果将是重复的“444444 ...”,它会不断向右延伸。但是,我想要的是使单个值在单个点上增加4,8,16,就像普通计数器一样。
请帮助。当我使用不带<br>
答案 0 :(得分:0)
删除连接:
x.innerHTML = a.value * 2;
而不是
x.innerHTML + = a.value * 2;
答案 1 :(得分:0)
试
x.innerHTML = parseInt(x.innerHTML) + (parseInt(a.value) * 2);
答案 2 :(得分:0)
您需要使用parseInt转换为整数,否则它将执行字符串连接。
var x = document.getElementById("text");
var y = setInterval(counter, 1000);
function counter() {
var a = document.getElementById("number");
x.innerHTML = parseInt(x.innerHTML)+ a.value * 2;
}
答案 3 :(得分:0)
https://jsfiddle.net/53y250vL/7/
这将首先将输入字段中的数字应用到段落中,然后跳转到循环中以在循环中将其乘以2。
<input id="number" />
<p id="text">
</p>
<button id="counterButton">
Count
</button>
var x = document.getElementById("text");
function counter() {
x.innerHTML = parseInt(x.innerHTML) * 2;
}
document.getElementById("counterButton").addEventListener('click', function() {
var a = document.getElementById("number");
x.innerHTML = a.value;
var y = setInterval(counter, 1000);
}, false);