关于javascript:在表格中添加新行

add a new row in a table

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Add table row in jQuery

我想在更改事件中向表中添加一个新行。 这是我到目前为止:

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

这是我的表:

1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ 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>

我无法让它发挥作用。 我在这里遗失了什么可以让任何人让我知道我的错误在哪里?

提前致谢。


你提到追加Row但是在你的代码中你只是追加单元格。

如果您需要实际附加一行,请尝试以下操作:

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


这一行:

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

将TD(

...

)附加到现有TD(td:last); 你想把它附加到TR,例如。

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

当然,你提到要添加一个新行,在这种情况下你根本不应该附加一个

,你应该附加一个

(你应该将它附加到表中,显然)。


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

按照这个:

自定义JQuery克隆的行属性

它允许您克隆,追加,然后自定义每个单元格..非常灵活。


您应该使用afterappend会将元素追加到tr中。

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

如果要添加新行,则必须添加tr

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