Javascript:尝试使用提示填充数组但不显示提示

时间:2017-02-08 21:10:43

标签: javascript

我试图调用一个方法,询问用户他们想要在阵列中创建多少条目,然后提示用户输入每个条目。我知道这可能是一个简单的错误,但我不知道为什么我的提示不起作用。

 <script>
function testScore(){
    var numberofScores = prompt("enter the number of scores:","");
    var scores = new Array();
    var whichScore=1;
    for(var i=0; i<numberofScores; i++; whichScore++){

    score[i]=prompt("enter score "+whichScore+":");
}
}
</script>

<a href="" onclick="testScore()">
Start Test score script
</a><br>

4 个答案:

答案 0 :(得分:4)

循环配置有3个部分,因此有两个分号。添加第三个分号后,第4节中有whichScore++。您可以使用逗号将其添加到配置的末尾。但是,将它添加到循环体中,而不是循环声明的一部分更清晰。也就是说,甚至不需要变量。只需使用(i + 1)并注意我们在此处不修改i,我们只是将其偏移用于显示目的。

此外,在循环中:score[i],需要scores[i],而您的<a>元素应该有href="#"而不是空属性。

最后,不要使用内联HTML事件处理属性:

  • 使代码更难以阅读并导致代码重复。
  • 导致围绕您提供的全局包装函数创建 属性值,用于更改函数中this的绑定。
  • 请勿遵循 W3C DOM Event 标准。

在JavaScript中使用 .addEventListener()

&#13;
&#13;
// When the DOM content is ready
window.addEventListener("DOMContentLoaded", function(){

  // Get a reference to the hyperlink and create a click event handler for it:
  document.getElementById("makeScores").addEventListener("click", testScore);

  function testScore(){
    var numberofScores = prompt("enter the number of scores:","");
    var scores = new Array();
  
    for(var i = 0; i < numberofScores; i++){
      scores[i] = prompt("enter score " + (i + 1) + ":");
    }
  
    console.log(scores);
  }

});
&#13;
<a href="#" id="makeScores">Start Test score script</a>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

<script>
function testScore(){
    var numberofScores = prompt("enter the number of scores:","");
    var scores = new Array();
    var whichScore=1;
    for(var i=0; i<numberofScores; i++, whichScore++){
     scores.push(prompt("enter score "+whichScore+":"));
     //or 
     //scores[i]= (prompt("enter score "+whichScore+":"));
    }
}
</script>

<a href="" onclick="testScore()">
Start Test score script
</a><br>
  1. 你的变量是分数
  2. 使用Array.push,因为您没有在数组构造函数中声明数组长度。编辑:您也可以使用分数[i]。它也会起作用。

答案 2 :(得分:0)

这是一个使用您的代码的JSFiddle。你有很多事情在这里

https://jsfiddle.net/tcoedqkf/

首先,你的for循环除了增量之外还需要一个逗号(虽然为了便于阅读,我会在for循环中执行)

for(var i=0; i<numberofScores; i++,whichScore++){

for循环中的变量名称不正确(缺少S)

scores[i]=prompt("enter score "+whichScore+":");

答案 3 :(得分:0)

B只有三个部分(用分号for分隔):初始化,条件和增量。如果要初始化或增加更多变量,请使用逗号;。像这样:

,

由于for(var i = 0; i < numberofScores; i++, whichScore++) { // ... 基本上只是whichScore,因此您不需要为此设置两个变量,只需i + 1即可:

i

注意for(var i = 0; i < numberofScores; i++) { score[i] = prompt("enter score " + (i + 1) + ":"); // ... 中的括号是必需的,因此会添加数字而不是连接数。