复制最后一个表行但在jquery中更改类

时间:2012-11-29 22:02:30

标签: jquery html

我有以下问题。

我有一张桌子,如下例所示。计划是复制一行但不是新的类。该类应该在删除类中更改。 jsfiddle中的示例:http://jsfiddle.net/klaas3/wgRYR/目标是使最后一行始终为绿色,其他行保持红色。

<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>

我使用最后一列(使用new和remove类或红色和绿色)作为按钮。

我已经有了以下内容,但似乎出现了问题:

$("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');
});

请注意,我不是一个非常有经验的jquery用户。此外,当更改单元类时,我将使用db id更改表行类。 (但我会尝试使用工作样本)。

1 个答案:

答案 0 :(得分:1)

修改

您需要在更改类

之前克隆元素

另外,要关闭/删除点击事件处理程序,请使用.off()

$("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');
});​

http://jsfiddle.net/XvDBC/