我编写了一个小练习程序,显示提示数字的时间表。
我希望在询问用户哪个号码后显示表格。如果用户输入的数字不同于 -1,我想请求另一个数字。
我正在寻找的顺序是提示用户,显示表格,提示用户显示表格...不幸的是,我的程序工作的顺序是提示用户,提示用户,提示用户。 ..紧接着显示每个输入的表格。
显然代码不是这样写的。
// get number to show time table for
var aNumber = prompt("Enter the number for time table or -1 to stop the program", "");
while(aNumber != -1) {
timeTableFrom(aNumber); // show time table for the first number
aNumber = prompt("Enter the number for time table or -1 to stop the program", ""); // ask for another number. HERE IS THE PROBLEM - THIS LINE RUNS BEFORE THE PREVIOUS ONE!
}
document.write("stopped");
function timeTableFrom(number)
{
for (var i = 0; i <= 10; i++)
{
document.write(number + " * " + i + " = " + number*i + "<br />");
}
}
最佳答案
// get number to show time table for
var aNumber = null;
var div = document.getElementById("textDiv");
setTimeout(enterNumber, 0);
function enterNumber()
{
aNumber = prompt("Enter the number for time table or -1 to stop the program", "");
if (aNumber != -1) {
timeTableFrom(aNumber); // show time table for the first number
setTimeout(enterNumber, 0);
}
else
div.innerHTML += "stopped"
}
function timeTableFrom(number)
{
for (var i = 0; i <= 10; i++)
{
div.innerHTML += number + " * " + i + " = " + number*i + "<br />";
}
}
<div id="textDiv">
</div>
@Teemu 是正确的。我承认,这有点草率,但这应该可行。尽量避免使用 document.write,因为它可能会产生不可预测的结果。相反尝试其他 methods of output
关于javascript - 即使提示位于函数之后,我的 Javascript 提示也会在函数之前运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39211595/