2013-11-01 59 views
0

所以我的最終目標是讓用戶輸入三個或更多的單詞,然後我必須單獨輸入單詞 ,如果有4個單詞,我必須在每個單詞中構建4行, 我一直盯着它幾個小時,只是想不通,爲什麼的insertRow()方法不會工作,它告訴我,在JavaScript中構建動態表

「不能打電話的insertRow()的未定義的方法」我有什麼在其他部分我的條件:

//build table around input 
    var table=document.getElementById('myTable'); 


    for(i=0; i<2; i++) 
    { 
    table.insertRow(i); 
    table.insertCell(i);} 
+1

在jsfiddle.net創建一個演示是複製問題 – charlietfl

回答

1

我看到的第一個問題是您在表DOM對象上調用.insertRow(),但是您需要在行上而不是在表上調用.insertRow()。有關更多詳細信息,請參閱MDN on insertCell。下面是一些工作的代碼示例:

function addWords(e) { 

    var str = document.getElementById("words").value; 
    var words = str.split(/[\s,]/); 
    if (words.length && words[0]) { 
     //build table around input 
     var table = document.getElementById('myTable'); 

     for (var i = 0; i < words.length; i++) { 
      var row = table.insertRow(-1); 
      var cell = row.insertCell(-1); 
      cell.innerHTML = words[i]; 
     } 
    } 
} 

和工作演示:http://jsfiddle.net/jfriend00/3g3Qy/

0

您應該在Row對象上調用insertCell。

var row = table.insertRow(); 
row.insertCell(); 
+0

試過了更早仍然無法正常工作 – user2855405

+0

你有一個表ID = myTable的? – regulus

+0

是的。我不知道爲什麼它的表格是空的 – user2855405

0

將一個console.log(table)var table=...之後。如果打印的內容不確定,問題是腳本運行得太快,您需要將腳本移動到頁面的最底部或wait for the DOM to load