【问题标题】:How can i terminate for loop with user input (Javascript)如何使用用户输入终止 for 循环(Javascript)
【发布时间】:2017-10-27 20:12:42
【问题描述】:
我正在尝试使用 javascript 中的 for 循环获取奇数,但我想通过用户输入终止循环,但我无法做到这一点,朋友们能帮帮我吗?
我希望“x
<html>
<head>
<body>
<input id="numbers" type="number">
<button onclick="odd()">Odd Numbers</button>
<p id="demo"></p>
<script>
function odd() {
var text = " ";
var x;
for ( x = 1; x < 7; x+= 2) {
text += x + " ";
}
document.getElementById("demo").innerHTML =+ text;
}
</script>
</body>
</head>
</html>
【问题讨论】:
标签:
javascript
loops
for-loop
【解决方案1】:
更新
现在您已经告诉我们您想要什么,这是我更新后的代码:
基本上它只是设置一个限制并随着 div 的变化而改变它
<html>
<head>
<body>
<input id="numbers" type="number" onChange="change()">
<button onclick="odd()">Odd Numbers</button>
<p id="demo"></p>
<script>
var lim=7;
function change() {
lim = document.getElementById("numbers").value;
}
function odd() {
var text = " ";
var x;
for ( x = 1; x < lim; x+=2) {
text += x + " ";
}
document.getElementById("demo").innerHTML += text;
}
</script>
</body>
</head>
</html>
旧代码
您可以使用setInterval 和clearInterval 来实现:
var i = 1;
var myInt = setInterval(function(){
document.getElementById("div").innerHTML += i;
i+=2;
}, 100);
<button onClick="clearInterval(myInt)">STOP</button>
<div id="div"></div>
【解决方案2】:
我认为这就是您正在尝试的,这会查看您的用户输入,如果它大于您的起始迭代器,它就会循环。
const button = document.querySelector('.go');
button.addEventListener('click', e => {
const input = document.getElementById('numbers');
const output = document.getElementById('demo');
if (input.value == 0) { return; }
for (let i = 0, len = input.value; i <= len; i++) {
if (i % 2 === 1) {
output.textContent += i.toString();
}
}
});
<html>
<head>
<body>
<input id="numbers" type="number">
<button class='go'>Odd Numbers</button>
<p id="demo"></p>
</body>
</head>
</html>