2012-07-18 57 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>'); 
});