0

JavaScript:

$('.addTable').live('click', function () {
    var appendTxt = "<table id='tab1'>  
                <tr><td><input type='text'   name='input1' /></td><td><input type='text'   name='input2' /></td>
                    <td><input type='button' class='addRow' value='Add Row' /></td></tr></table>";
    $("table:last").after(appendTxt);
});

$('.addRow').live('click', function () {
    var appendTxt = "<td><input type='text'name='input1' /></td><td><input 
                type='text'name='input2' /></td><td><input type='button' class='addRow' value='Add Row'/></td> ";
    $("tr:last").after(appendTxt);
});

HTML:

<table id="tab">
    <tr>
        <td>
            <input type="text" name="input1" />
        </td>
        <td>
            <input type="text" name="input2" />
        </td>
        <td>
            <input type="button" class="addRow" value="Add Row" />
        </td>
    </tr>
</table>

<input type="button" class="addTable" value="addTable" />

当我点击“添加行”按钮时,我会动态地获得一个新行。当我点击“添加表格”按钮时,我得到一个新表格。

但是在此之后,当我在新表和旧表中都点击“添加行”时,我在最后一个添加的表中添加了一行,因为我已经将$("tr:last").after(appendTxt) 它附加到<tr>最新表中的最新表中。

有没有更好的方法来做到这一点,以便当我点击“新表”时,我可以在各个表中添加一行?

4

1 回答 1

0

在你上面的评论之后。

改变:

$("tr:last").after(appendTxt);  

到:

$(this).closest('table').find('tr:last').after(appendTxt);

我假设您的添加行按钮存在于您添加新行的每个表中。

于 2012-06-27T18:48:51.723 回答