2012-07-18 91 views
17

可能重複:
Add table row in jQuery在表中添加一個新行

我想一個新行添加到我的桌子上的改變事件。以下是我迄今爲止:

$('#CourseID').change(function() { 
    $('#CourseListTable > tr > td:last').append('<td>...</td>'); 
}); 

這裏是我的表:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>  
<table id="CourseListTable"> 
    <tr> 
     <th>Course ID</th> 
     <th>Course Section</th> 
     <th>Level</th>    
    </tr> 
    <tr> 
     <td><select name="CourseID" id="CourseID"></select></td> 
     <td><select name="CourseSection" id="CourseSection"></select></td> 
     <td><select name="Level" id="Level"></select></td>    
    </tr> 
</table> 

我不能得到這個工作。我錯過了這裏的任何東西,任何人都可以讓我知道我的錯誤在哪裏?

在此先感謝。

+0

如果你添加'thead'和'tbody'部分到你的表中,你可以將新行添加到tbody中......另外,我只是意識到你正在追加一個單元格。你想追加一個單元格還是一行? – MrOBrian 2012-07-18 17:49:55

回答

8

你提到追加行,但在你的代碼中你只追加單元格。

如果您需要實際追加一個整行,試試這個:

$('#CourseID').change(function() { 
    $('<tr/>').append('<td>...</td>').insertAfter('#CourseListTable tr:last'); 
}); 
+0

看起來像追加了一行,但它只是增加了三個點'...'到新行。我想在新行中的td中顯示所有三個選擇。 – user793468 2012-07-18 17:56:01

+0

我提供的例子中的點與空格填充符一樣。你應該用你想要附加的HTML代替它。 – Chandu 2012-07-18 17:56:59

+0

另外值得注意的是,HTML元素的ID在整個頁面中是唯一的。確保你不用相同的id創建html元素 – Chandu 2012-07-18 17:57:42

6

這條線:

$('#CourseListTable > tr > td:last').append('<td>...</td>'); 

追加TD(<td>...</td>)到現有的TD(td:last);你想把它附加到TR上,例如。

$('#CourseListTable > tr').append('<td>...</td>'); 

當然,你提到想添加一個新,在這種情況下,你不應該附加一個<td>可言,你應該附加一個<tr>(你應該把它添加到表,顯然)。

3
$('#CourseID').change(function() { 
    $('#CourseListTable > tbody > tr:eq(1)').append('<td>...</td>'); 
}); 
0

如果要添加新行,你必須添加一個tr

$('#CourseListTable tr:last').after('<tr><td>...</td><td>...</td><td>...</td></tr>'); 
0

您應該使用after代替,append將在tr內追加元素。

$('#CourseID').change(function() { 
    $('#CourseListTable tr:last').after('<tr><td>test</td><td>test</td><td>test</td></tr>'); 
});