2016-07-27 77 views
-2

所以这里是问题所在。我想让用户在数组的文本框中输入索引号。服用指数后,我希望用户从一个提示框,数组,但该提示框来存储输入值来一遍又一遍,我必须每天采取输入 这里时间上点击链接的代码是Java脚本从文本框中获取数组的索引号

<!doctype html> 
    <html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Untitled Document</title> 
    </head> 

    <body> 
    <label> Enter Number of Records </label> 
    <input type="text" id="t1"> 
    <input type="button" value="Enter" onClick="record()"> 

    <h1 id="demo"></h1> 

    <script src="script.js" type="text/javascript"></script> 
    </body> 
    </html> 

Java脚本:

var data = document.getElementById("t1").value; 
function record(){ 
    var crap = new Array(data); 
    for(var i=0;i<crap.length;i++){ 
     crap[i] = prompt("Add something in my array",""); 
    document.getElementById("demo").innerHTML += crap[i]+"<br>"; 
    } 
+0

因为你是在一个循环中使用它,所以'prompt'将执行每个数组元素。你也想输入一些东西并把它放在数组的某个索引中,或者只是将它推到数组的末尾? –

+0

_I想要用户输入数组的索引在文本框中可以请澄清你到底在找什么 – brk

+0

@SpencerWieczorek我只是想输入任何东西在数组 –

回答

0

就你而言,你正在检索功能外的data。因此它的值将是'未定义的'并且crap将变成一个值为undefined的数组。所以crap.length将始终为1

试试这个:
function record(){ var data = document.getElementById("t1").value; var crap = [] if(crap != undefined) for(var i=0;i<data;i++){ var tmp = prompt("Add something in my array",""); crap.push(tmp); document.getElementById("demo").innerHTML += crap[i]+"<br>"; } }
享受编码....

0

试试这个,这将解决您的问题。

你只是声明命名crap数组,你想报复前阵充满crap.length,所以你得到的问题。由于数据具有您的价值,因此请试着循环使用data值。

function record(){ 
 
      data = document.getElementById("t1").value; 
 
\t  var crap = new Array(parseInt(data)); // you should take data here, since crap is empty at this point. 
 
      console.log(data) 
 
\t  for(var i=0;i<data;i++){ 
 
\t \t crap[i] = prompt("Add something in my array",""); 
 
\t  document.getElementById("demo").innerHTML += crap[i]+"<br>"; 
 
\t  } 
 
\t }
<!doctype html> 
 
    <html> 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    <title>Untitled Document</title> 
 

 
    </head> 
 

 
    <body> 
 
    <label> Enter Number of Records </label> 
 
    <input type="text" id="t1"> 
 
    <input type="button" value="Enter" onClick="record()"> 
 

 
    <h1 id="demo"></h1> 
 

 
    <script src="script.js" type="text/javascript"></script> 
 
    </body> 
 
    </html>

请运行该代码段,检查答案。

+0

为什么要将'data'放入数组中,然后在循环中覆盖它? – Barmar

+0

数据只是在函数中,但不在循环中,'crap.length'没有任何关系,因为在那个时候数组是空的,请运行代码片段并检查。 – Sravan

+0

当'data'不是一个整数时''crap = new Array(data)''与'crap = [data]'是一样的。 – Barmar