2009-12-23 188 views
0

我使用這個動態添加行到表:沒有行動態添加行HTML表

$('#myTable tr:last').after('<tr><td>1</td><td>a</td></tr>'); 

,但它似乎並沒有工作,如果表沒有記錄:

<table id="myTable" class="altTable"> 
    <thead> 
     <tr> 
      <th> 
       Col1 
      </th> 
      <th> 
       Col2 
      </th> 
     </tr> 
    </thead> 
    <tbody> 
    </tbody> 
</table> 

什麼是正確的選擇器在這裏添加一個行,如果有0行或> 0行存在?

+0

你要添加的行結束TBODY嗎? – rahul 2009-12-23 13:40:54

+0

是的。 。 。 。 。 。 。 – leora 2009-12-23 14:58:32

回答

9

嘗試......

$("<tr><td>1</td><td>a</td></tr>").appendTo("#myTable tbody"); 

這應該添加一行到表body標籤的結束,無論是否有行已經存在與否。

如果TBODY標籤將不存在,W/O任何行已經存在,那麼你會做到這一點...

if ($("#myTable tbody").length > 0){ 
    $("<tr><td>1</td><td>a</td></tr>").appendTo("#myTable tbody"); 
} 
else{ 
    $("<tbody><tr><td>1</td><td>a</td></tr></tbody>").appendTo("#myTable"); 
} 
+0

這不適合我在IE8中工作。基本上,它會導致這個HTML: 「一個」 理念?謝謝。 – Ariel 2010-02-24 20:26:10

+0

@Ariel:我得看看你的代碼。 – Ryan 2010-02-26 12:06:56

+0

當然,我在這裏發佈的問題,http://stackoverflow.com/questions/2329319/javascript-issue-when-dynamically-adding-a-row-from-its-html-to-a-table-in-ie – Ariel 2010-02-26 12:09:51

1
if(!$('#myTable tbody').length) 
{ 
    $('#myTable').append($('<tbody>')); 
} 

$('#myTable tbody').append('<tr><td>1</td><td>a</td></tr>');   
+0

我認爲這不會將行添加到thead或tbody的內部。 – rahul 2009-12-23 13:35:35

+0

這不會按照adamabtium – leora 2009-12-23 13:37:25

+0

好。我的錯。現在更新請取消您的downvote。 – 2009-12-23 13:40:54