我正在尝试制作一个小型Web应用程序,我需要从输入元素中获取值并将它们多次推送到数组中。
第一次执行此操作时,它返回undefined
,第二次将第一个值推入x1和x2的次数,但不推第二个值。
[list
和entree
是全局变量。
function winner()
尚未被调用。
是的,在按下任何按钮之前,我确实在两个输入中都输入了内容。
var list = [];
var entree;
function addToList() {
if (document.getElementById("Name")) {
console.log("addToList triggered");
entree = document.getElementById("Name").value
for (i = 0; i < document.getElementById("Lose").value; i++) {
list.push(entree);
}
}
}
function ausgeben() {
for (j = 0; j < list.length; j++) {
document.write(list[i] + " ");
}
}
<label for="Name">Name</label>
<br>
<input type="text" name="Name" id="Name" maxlength="30">
<br>
<label for="Lose">Lose </label>
<br>
<input type="Int" name="Lose" id="Lose" maxlength="40">
<br>
<button type="reset">Eingaben zurücksetzen</button>
<br>
<button onclick="addToList()">Eingaben absenden</button>
<button onclick="winner()">Los Ziehen</button>
<button onclick="ausgeben()">ausgeben</button>
您在for循环中使用i
而不是j
,因此从undefined
开始使用list[undefined]===undefined
。
var list=[], entree;
function addToList(){
if(document.getElementById("Name")){
console.log("addToList triggered");
entree = document.getElementById("Name").value
for(i=0; i<document.getElementById("Lose").value; i++){
list.push(entree);
}
}
}
function ausgeben(){
for(j=0;j<list.length;j++){
// you used i instead of j, hence "undefined"
document.write(list[j] + " ");
}
}
<label for="Name">Name</label>
<br>
<input type="text" name="Name" id="Name" maxlength="30">
<br>
<label for="Lose">Lose </label>
<br>
<input type="Int" name="Lose" id="Lose" maxlength="40">
<br>
<button type="reset">Eingaben zurücksetzen</button>
<br>
<button onclick="addToList()">Eingaben absenden</button>
<button onclick="winner()">Los Ziehen</button>
<button onclick="ausgeben()">ausgeben</button>