2016-07-27 80 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