如何通过用户(输入字段)改变函数内全局变量的值
How to change value by user (inputing field) of global variable inside of function
是否有可能通过prompt
或其他方式,用户可以更改此函数内变量的值:
<!DOCTYPE html>
<html>
<body>
<center>
<button onclick="myFunction()" style="font-size: 17pt; margin-top: 5%;">Roll it</button>
</center>
<br>
<center>
<span id="demo" style="margin: 10% 5%; font-size: 45pt; color: blue;"></span>
<span id="demo1" style="margin: 2% 5%; font-size: 45pt; color: red;"></span>
</center>
<script>
function myFunction() {
var x = Math.floor((Math.random() * 3) + 1);
document.getElementById("demo").innerHTML = x;
var y = Math.floor((Math.random() * 3) + 1);
document.getElementById("demo1").innerHTML = y;
if (x == y) {
myFunction();
}
else {
}
}
</script>
</body>
</html>
我应该使用prompt
还是input
字段,以及如何影响函数值内部的变化。
如何改变这个变量的值,从3
例如到5
,而不失去函数效果?
var x = Math.floor((Math.random() * 3) + 1);
您可以使用一个输入,并在函数中读取它的值。我还改进了你的功能一点(而不是改变功能)。
<!DOCTYPE html>
<html>
<body>
<center>
<input type="number" id="max" value="3"/>
<button onclick="myFunction()" style="font-size: 17pt; margin-top: 5%;">Roll it</button>
</center>
<br>
<center>
<span id="demo" style="margin: 10% 5%; font-size: 45pt; color: blue;"></span>
<span id="demo1" style="margin: 2% 5%; font-size: 45pt; color: red;"></span>
</center>
<script>
function myFunction() {
var max = document.getElementById('max').value || 3;
var x = Math.floor((Math.random() * max) + 1);
document.getElementById("demo").innerHTML = x;
do {
var y = Math.floor((Math.random() * max) + 1);
} while (x === y);
document.getElementById("demo1").innerHTML = y;
}
</script>
</body>
</html>
看到jsfiddle。
试试:
<!DOCTYPE html>
<html>
<body>
<center>
<input type="text" id="var" />
<br>
<button onclick="myFunction()" style="font-size: 17pt; margin-top: 5%;">Roll it</button>
</center>
<br>
<center>
<span id="demo" style="margin: 10% 5%; font-size: 45pt; color: blue;"></span>
<span id="demo1" style="margin: 2% 5%; font-size: 45pt; color: red;"></span>
</center>
<script>
function myFunction() {
debugger
var x = Math.floor((Math.random() * document.getElementById("var").value) + 1);
document.getElementById("demo").innerHTML = x;
var y = Math.floor((Math.random() * document.getElementById("var").value) + 1);
document.getElementById("demo1").innerHTML = y;
if (x == y) {
myFunction();
}
else {
}
}
</script>
</body>
</html>
希望对你有所帮助
相关文章:
- 在javascript函数中设置全局变量
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 创建要在其他函数中使用的全局变量
- 函数中的innerHTML(全局变量?)
- 全局变量只能由第一个函数访问
- 匿名自执行js函数内部的全局变量在外部仍然可用
- 更改函数内部的全局变量而不调用它
- 如何制作全局javascript函数和变量
- 改进js代码以删除全局变量和函数
- 调用函数后如何重置全局变量
- 无法在函数中检索全局变量的值
- 将全局变量传递给自调用函数或“IIFE”的目的
- 保留 JQuery Vars 用于另一个函数(全局变量?)
- 如何在 ajax 调用后更改包装器 JavaScript 函数中的全局变量
- 删除两个函数使用的全局变量
- 如何将socket.on中函数的值保存为全局变量
- angular/javascript无法识别函数内部的全局变量
- 如何修改函数内部的全局变量
- jQuery-函数全局变量
- JS函数/全局变量的作用域