重复上一个表行,但更改jquery中的类

重复上一个表行,但更改jquery中的类,jquery,html,Jquery,Html,我有以下问题 我有一张桌子,如下面的例子。计划是复制一行,但不使用新类。该类应在remove类中更改。jsfiddle中的示例:目标是保持最后一行始终为绿色,其他行始终为红色 <table class="test"> <thead> <tr> <td>header 1</td> <td>header 2</td> <td>header 3<

我有以下问题

我有一张桌子,如下面的例子。计划是复制一行,但不使用新类。该类应在remove类中更改。jsfiddle中的示例:目标是保持最后一行始终为绿色,其他行始终为红色

<table class="test">
<thead>
    <tr>
        <td>header 1</td>
        <td>header 2</td>
        <td>header 3</td>
        <td>header 4</td>
    </tr>
</thead>
<tbody>
    <tr class="1">
        <td>data 1</td>
        <td>data 2</td>
        <td>data 3</td>
        <td class="remove"></td>
    </tr>
    <tr class="2">
        <td>data 1</td>
        <td>data 2</td>
        <td>data 3</td>
        <td class="remove"></td>
    </tr>
    <tr class="new">
        <td>data 1</td>
        <td>data 2</td>
        <td>data 3</td>
        <td class="new"></td>
    </tr>
</tbody>
请注意,我不是一个非常有经验的jquery用户。此外,当单元格类更改时,我也将使用db id更改表行类。(但我将使用一个工作示例进行尝试)。

编辑:

在更改类之前,需要克隆元素

还要关闭/删除单击事件处理程序,请使用

$(“table.test tr.new:last td.new”)。单击(函数(){
var x=$('table.test tr.new:last').clone(true);
//您可以使用“this”而不是$('table.test tr.new:last td.new'),因为您在它的事件处理程序中

$(this).removeClass('new').addClass('remove').off('click'));//您到底想做什么?您没有td.add类。您有td.new。您可以在JSFIDLE上发布示例代码吗?您正在选择一个带有add类的tr,但在您的示例中没有该类的任何行。根据JSFIDLE示例的要求,目标是在底部有一个绿色单元格,其他单元格为红色。在示例中,它们都是红色的变成红色。我知道你用JavaScript标记了这个问题,但是为什么不使用CSS3选择器呢?
table tbody tr td:last child{background color:red;}table tbody tr:last child td:last child{background color:green;}
()。这就是我的意思!除了我单击其中一个添加了红细胞的行外,它们仍然会生成新记录。只有当我按下绿色的“按钮”时,才会产生新记录。这花费了我很多时间!
$("table.test tr.new:last td.new").click(function(){
$('table.test tr.new:last  td.new').removeClass('new').addClass('remove').fadeIn("fast");
$('table.test tr.new:last').clone(true).insertAfter('table.test tr.new:last');
});
$("table.test tr.new:last td.new").click(function(){
    var x = $('table.test tr.new:last').clone(true);
    // you can use "this" instead of $('table.test tr.new:last  td.new') since you are inside it's event handler
    $(this).removeClass('new').addClass('remove').off('click');// <-- removes handler from current td 
    x.insertAfter('table.test tr.new:last');
});​