2012-08-05 75 views
0

我正在javascript中動態創建表格。另外我起訴一些CSS代碼來格式化表格。但是,我的代碼沒有選擇任何格式。甚至沒有像表格中添加邊框那樣最簡單的方法。這裏是我的代碼:在Javascript中添加表格樣式

function parseRequest_ls(response) { 
    document.getElementById("files").innerHTML += "<table border='2'>"; 

    for(var i=0;i<5;i++){ 
     if(response.data[i].type == "folder" || response.data[i].type == "album") { 
      document.getElementById("files").innerHTML += "<tr><td><b>+</b> <a href='#'>"+ response.data[i].name + "</a></td></tr>"; 
     } 
    } 
    document.getElementById("files").innerHTML += "</ul></table></div>"; 
} 

CSS代碼:

table, th, td { 
    border: 2px solid; 
    border-collapse: collapse; 
    font-family: "Trebuchet MS", Arial, sans-serif; 
    color: #555; 
} 

caption { 
    font-size: 150%; 
    font-weight: bold; 
    margin: 5px; 
} 

td, th { 
    padding: 4px; 
} 
+3

這可能是因爲你的html無效。你不能直接在表格元素中放置一個ul。它必須在td中。更重要的是ul來自哪裏,你不會在這段腳本中創建起始標籤。你也不打開你正在關閉的div標籤。 – JConstantine 2012-08-05 19:00:38

+0

即使現在也不能工作..... – CodeMonkey 2012-08-05 19:05:05

+1

你可以使用jQuery,並使這更簡單嗎? – jrubins 2012-08-05 19:10:39

回答

2

在你的函數你有

document.getElementById("files").innerHTML += "<table border='2'>"; // first line 

document.getElementById("files").innerHTML += "</ul></table></div>"; // last line 

你已經把關閉UL標籤</ul>並關閉div標籤</div>在最後一行,但沒有使用任何uldiv任何起動tag所以HTML壞了,我想你不應該使用table內的ul沒有包裝它td內。所以在這種情況下,您可以使用

function parseRequest_ls(response) { 
    var trs='';  
    for(var i=0;i<5;i++){ 
     if(response.data[i].type == "folder" || response.data[i].type == "album") { 
      trs +="<tr><td><b>+</b> <a href='#'>"+ response.data[i].name + "</a></td></tr>"; 
     } 
    } 
    document.getElementById("files").innerHTML += "<table border='2'>"+trs+"</table>"; 
} 

A simple example

1

請勿使用+=innerHTML。首先在一個臨時變量中構建一個字符串,然後在字符串中有一些完整(有效的)HTML後,可以使用+=將它附加到一個元素上。

-1

所以問題是,我不能通過innerHTML創建表。我必須使用DOM對象來完成它。我創建了一個DOM對象,然後createElement獲取表格。有點不直接...但它的工作..謝謝你的建議,雖然。 :)