在单击add函数之后添加另一行

时间:2014-06-14 02:53:59

标签: javascript jquery

我有这个书面功能:

        $(".tdAdd").on("click", function () {
        counter = $('#myTable tr').length - 3; //supposing i only have 2 data
        var count = $("#myTable").length;
        var newRow = $("<tr>");
        var cols = "";
        cols += '<td><input type="button" value="Add" class="tdAdd"/></td>';
        cols += '<td><input type="text" name="name' + counter + '"/></td>';
        cols += '<td><input type="text" name="price' + counter + '"/></td>';

        cols += '<td><input type="button" class="ibtnDel"  value="Delete"></td>';
        newRow.append(cols);
        $("table.order-list").append(newRow); // this is adding row to the end. but i want i on a specific row after where the add button was clicked
        counter++;
    });

    $("table.order-list").on("click", ".ibtnDel", function (event) {
        $(this).closest("tr").remove();
    });




});

我的桌子是这样的:

<table id="myTable" class="order-list">
<thead>
    <tr>
        <td></td>
        <td></td>
        <td>Name</td>
        <td>Price</td>
    </tr>
</thead>
<tbody>
    <tr>
           <td style="text-align: left;">
            <input type="button" id="addrow" value="Add Row" />
        <td>
            <input type="text" name="name" />
        </td>
        <td>
            <input type="text" name="price1" />
        </td>
        <td>
            <input type="button" value="Delete" class="ibtnDel"/>
        </td>
    </tr>
</tbody>        

</table>

以下是Fiddle

示例

我想在下面添加另一行,点击“添加行”按钮。小提琴只会在桌子的底部添加一行,只有第一个按钮才有效。任何帮助,将不胜感激。谢谢!

我试过了:

$("table.order-list").eq(count-1).after(newRow)

但我仍然无法使代码生效

1 个答案:

答案 0 :(得分:1)

您需要将事件侦听器应用于文档,因为该按钮是动态创建的。 EG:

$(document).on("click", '.tdAdd', function () { ... }

请参阅更新的小提琴:

http://jsfiddle.net/y8F88/1/