美好的一天。首先要有耐心,因为我只是一个新的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....
以下是我在下面应用迈克尔建议时的整个代码:它有效,但我现在关注的是输出中未定义的变量---&gt; 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>
答案 0 :(得分:1)
除非我误解了您,否则您的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时,你的两个数组仍然会像它们那样。