使用Jquery添加,删除动态行

时间:2012-11-09 13:52:00

标签: jquery html

我已经完成了在html,jquery中添加和删除动态行。

jsfiddle.net/gansai/p5QwC/1/

HTML:

<form action="grading.php" method="post">               
<table width="100%" id="tableRealizzazione">
    <tr>
        <th></th>
        <th style="padding:12px;text-align:center;">Serial No</th>
        <th style="padding:12px;text-align:center;">Personale</th>
        <th style="padding:12px;text-align:center;">Percentage</th>
        <th style="padding:12px;text-align:center;">Marketing point</th>
        <th style="padding:12px;text-align:center;">Add/Remove</th>
    </tr>

    <tr class="even">
        <td></td>
        <td>
            <input type="text" name="serial[]"  class="add increment" value="1">
        </td>
        <td style="padding:12px;">
            <input type="text" value="" name="Personale[]">
        </td>
        <td style="padding:12px;">
            <input type="text" name="from[]" size="5%"> -
            <input type="text" name="to[]" size="5%"> %
        </td>
        <td style="padding:12px;">
            <input type="text" class="totaliCostiGestione" name="marketpt[]">
        </td>
        <td style="padding:12px;">
            <input type="text" name="programid[]" class="add" value="34" size="10%">
        </td>
        <td style="padding:12px;">
            <input type="button" class="addnew add" value="+" />
        </td> 
    </tr>
    <tr>
        <td>
            <input type="submit" name="submit" value="submit">
        </td>
    </tr>                     
</table>

jQuery的:

    $('.addnew').live('click', function(){
var thisRow = $(this).parent().parent();
newRow = thisRow.clone(true).insertAfter(thisRow);
newRow.find('input:not(.add)').val("");

$(this).removeClass('addnew').addClass('remove');
    $(this).val("-");
    newRow.find('input.increment').val(parseInt(thisRow.find('input.increment').val())+1);
});

$('.remove').live('click', function(){
    $(this).parent().parent().remove();
});

但我想在同一个按钮上添加/删除操作。而不是将删除图标显示到上一行。

有人可以建议吗?

1 个答案:

答案 0 :(得分:1)

我相信这就是您所寻找的,但如果不是,请告诉我。

    $('.addnew').live('click', function(){
    var thisRow = $(this).parent().parent();
    newRow = thisRow.clone(true).insertAfter(thisRow);
    newRow.find('input:not(.add)').val("");

    newRow.find('.addnew').removeClass('addnew').addClass('remove');
    newRow.find('.remove').val("-");
    newRow.find('input.increment').val(parseInt(thisRow.find('input.increment').val())+1);
});

$('.remove').live('click', function(){
    $(this).parent().parent().remove();
});

这样可以保持第一行的+,并为克隆的行添加 - 按钮。

http://jsfiddle.net/p5QwC/3/是一个有效的例子。

<强>更新

假设您不希望删除初始行,可能这更符合您的要求。 http://jsfiddle.net/p5QwC/10/