通过输入法为全局变量赋值
Assigning a value to a global variable through input method
您好。首先要有耐心,因为我只是一个新的Javascript和编程爱好者。我的项目关注的是,我想通过输入法为全局变量分配一个值,并运行它。我已经试过了,研究过了,但现在没有什么比这更有效的了。因此,我正在向任何人征求想法,这怎么可能。你的帮助肯定会对我的学习过程有所帮助。
最初,代码看起来是这样的:这里全局变量numItems由30定义。下面的另外两个函数中也提到了这个变量numItems。我想做的是通过输入法改变那个数字。我试过了。。。
numItems = 30;
var xvalue = [];
var yvalue = [];
for (var i=0; i < numItems; i++) {
xvalue.push(i % 9); yvalue.push((i % 9)+1);
}
followed by several functions....
这是我的尝试,但似乎不起作用。。。如有任何协助,我们将不胜感激。
numItems = document.getElementById("numInput");
numItems.addEventListener("input", whatValue);
function whatValue() {
var num = parseFloat(numItems.value);
document.getElementById("numInput") = num;
}
var xvalue = [];
var yvalue = [];
for (var i=0; i < numItems; i++) {
xvalue.push(i % 9); yvalue.push((i % 9)+1);
}
followed by several functions....
以下是我应用Michael以下建议时的完整代码:它有效,但我现在担心的是输出中的未定义变量--->undefined+undefined或undefined-undefined
<body>
<input id="numInput">
<select id="processMath">
<option value="add">Addition</option>
<option value="sub">Subtraction</option>
</select>
<button onclick="newExercise()">New Exercise</button>
<button onclick="createExercise()">Create Exercise</button>
<div id="tableOne"></div>
</body>
<script type="text/javascript">
numItems = document.getElementById("numInput");
numItems.addEventListener("input", whatValue);
function whatValue() {
numItems = parseFloat(document.getElementById("numInput").value);
}
xvalue = [];
yvalue = [];
for (var i=0; i<numItems ; i++) {
xvalue.push(i % 9); yvalue.push((i % 9)+1);
}
function tableOne (operator) {
var valtp = '';
var spc = '<table border="1" width="80%"><tr>';
i = 0;
while (i < numItems ) {
a = xvalue[i];
b = yvalue[i];
spc += '<td align="right">'+a;
if (operator == 'add') { spc += '<br>+ '+b; valtp = a+b; }
if (operator == 'sub') { spc += '<br>- '+b; valtp = a-b; }
spc += '<br>_____';
i++;
if ((i % 5) == 0) { spc += '</tr><tr>'; }
}
spc += '</tr></table>';
return spc;
}
function createExercise() {
var a = 0; var b = 0; var spc = '';
var spc = '';
var sel = document.getElementById('processMath').value;
switch (sel) {
case 'add' : spc += tableOne(sel); break;
case 'sub' : spc += tableOne(sel); break;
}
document.getElementById('tableOne').innerHTML = spc;
}
function makeRandom() {
return (Math.round(Math.random())-0.5);
}
function newExercise() {
xvalue.sort(makeRandom);
yvalue.sort(makeRandom);
}
</script>
除非我误解了您的意思,否则您的whatValue()
函数似乎正在尝试更改输入值,而不是更改numItems
变量,但它在这两方面都失败了。
function whatValue() {
var num = parseFloat(numItems.value);
document.getElementById("numInput") = num;
}
应为:
function whatValue() {
numItems = parseFloat(document.getElementById("numInput").value);
}
现在,每次numInput更改时,您的numItems变量都应该更改。
但是,即使numItems发生了更改,它也不会使代码的其余部分再次运行。所以你的两个数组看起来仍然和numItems为30时一样。
相关文章:
- Javascript变量赋值|
- 如何在javascript中为全局变量赋值
- 我可以在javascript中的回调函数中为变量赋值吗
- 无法在函数中检索全局变量的值
- JavaScript 变量赋值的行为令人惊讶
- 为什么 Javascript 在变量赋值时将 null 转换为字符串
- JavaScript: 变量赋值 in for 语句 |在前面或里面
- 我可以将变量赋值为数组值吗?
- 变量赋值无效
- 一行中的多个变量赋值
- jQuery- 为什么为全局变量赋值在函数中不起作用
- 通过输入法为全局变量赋值
- 如何为全局变量赋值,并在jquery/javascript中的其他函数中使用它
- 给回调函数中的全局变量赋值并返回它[Node.js]
- 使用$给全局变量赋值.Ajax (JQuery)
- Jquery全局变量赋值和在javascript函数中的使用
- 将变量赋值给全局作用域有什么危险或好处吗?
- 如何在一个函数中声明一个全局变量赋值,并在另一个函数中使用
- 在 ajax 调用中为全局变量赋值,并在单独的.js文件中使用它
- 给剑道网格列模板中的全局变量赋动态值