2014-10-27 68 views
1
<input type="number" id="arrayLength" /> 
<button id="myButton">Submit</button> 
<table id="finalTable"></table> 
var tableData = ["<td>"]; 

function myFunction(){ 
    var tableRow; 
    tableData.length = document.getElementById("arrayLength").value; 
    for(i=0; i<tableData.length; i++){ 
     tableData[i] = "This is your table"; 
     tableRow = "<tr>" + tableData[i] + "</tr>"; 
    } 

    return tableRow; 

} 

document.getElementById("myButton").onclick = function(){ 
    document.getElementById("finalTable").innerHTML = myFunction(); 
} 

在這裏,我想要什麼,當用戶輸入領域的一些數字,應該創建一個相同的行&與數據表的表:「這是你的表」中它。我的意思是,如果我輸入5,它應該在每個單元格中使用「這是你的表」的5列。目前它只有一個小區。我知道它遠離預期輸出,但請幫助我。提前致謝。使得基於用戶輸入

回答

1

你只得到1個單元的原因,是因爲你分配給tableRow而不是串聯。此外,您可能需要使用嵌套的for循環,增加一列,以及行:

function myFunction() 
{ 
    var tableRow = ""; //Give a default value here 
    var length = document.getElementById("arrayLength").value; 
    for(i=0; i<length; i++){ 
     tableRow += "<tr>"; 
     for(j=0; j<length; j++) 
     { 
      tableRow += "<td>"; 
      tableRow += "This is your table"; 
      tableRow += "</td>"; 
     } 
     tableRow += "</tr>"; 
    } 
    return tableRow; 
} 

這裏的地方我測試,以確保它的工作原理:http://jsfiddle.net/k8dxqu6h/

+0

非常感謝... – 2014-10-27 04:49:16

0

每次迭代都覆蓋tableRow。連接,不要分配。

tableRow += "<tr>" + tableData[i] + "</tr>"; 
     ^