2014-02-20 62 views
0

此代碼爲javascript不工作任何人都可以幫助我this.i've已經嘗試了很多,但無法找到這裏有什麼問題!!檢查每一行.i不知道是否編碼是錯誤的或者沒有與我的瀏覽器的任何問題一個動態的js表不工作

<html> 
<head> 
<title>table dynamic</title> 
<style> 
tr{width:100%;height:100%;border:1px solid black;} 
td{height:33%;width:33%;padding:10px;} 
.tableShape{ 
    width:300px; 
    height:300px; 
    font-size:30px; 
    text-align:centre; 
    color:red; 
} 

table{border:1px solid black;padding:10px;} 
</style> 
</head> 
<body> 
<script> 
    var i, j; 
    var arr = new Array(3); 
    for (i = 0; i < 3; i++) { 
     arr[i] = new Array(3); 
    } 
    for (i = 0; i < 3; i++) { 
     for (j = 0; j < 3; j++) { 
      arr[i][j] = 1; 
     } 
    } 

    function tabs() { 
     var k, t; 
     var m = document.createElement("table"); 
     m.setAttribute('class', "tableShape"); 

     for (k = 0; k < 3; k++) { 
      var p = m.insertRow(k); 
      for (t = 0; t < 3; t++) { 
       var s = p.insertCell(t); 
       s.innerHTML += arr[i][j]; 
      } 
     } 
    } 
    window.onLoad = tabs(); 
</script> 
</body> 
</html> 
+0

難道你在控制檯的任何錯誤?爲我們提供一個jsfiddle,我們會幫助你。 – user1477388

+1

請不要使用'new Array'。只需調用'.push'即可。或者'var arr = [[1,1,1],[1,1,1],[1,1,1]]就是你的例子。 'x.setAttribute('class',y)'可以是'x.className = y'。 – Ryan

+0

我不知道如何擺放js小提琴... –

回答

2

你有你創建的元素附加到DOM:

function tabs() { 
     var k, t; 
     var m = document.createElement("table"); 
     m.setAttribute('class', "tableShape"); 

     for (k = 0; k < 3; k++) { 
      var p = m.insertRow(k); 
      for (t = 0; t < 3; t++) { 
       var s = p.insertCell(t); 
       s.innerHTML += arr[i][j]; 
      } 
     } 
     document.body.appendChild(m); 
} 
+0

只要使用'document.body' ... – Ryan

+0

哦,很好@minitech,如果它能讓你開心。就我個人而言,我喜歡以某種方式訪問​​DOM,但我知道我的原始版本是醜陋的。 –

1

當您創建在JavaScript中的DOM元素,它們是在內存中創建分離從DOM,看他們你必須將它附加到DOM中的某個節點。

document.body.appendChild(m); 

你正在做使用變量嵌套操作kt所以用它的循環

s.innerHTML+=arr[k][t]; 

這裏面是一個小提琴http://jsfiddle.net/AmH22/1/

+0

它終於顯示了表:) –