使用jQuery删除行时删除单个td

时间:2010-08-03 14:52:09

标签: jquery html

在我的Web应用程序中,我使用jQuery从HTML表中动态添加/删除行。

我要求我需要删除单个td元素(而不是整行)。

我的jQuery代码如下:

$(function () {

    /* adding new row to existing table */
    // HTML template of a row
    $("#contactInfo").each(function () {
        $("button.addCommentRow", this).live('click', function () {

            var curr_row = $(this).closest('tr');
            var html = '<tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> ' + col_ninth + '</td> <td><button type="button" class="addCommentRow">+</button> <button type="button" class="deleteCommentRow">-</button> </td> </tr>';

            var newRow = $(html).insertAfter(curr_row); // add after the last
            newRow.find('.addCommentRow, .deleteCommentRow').button();
            newRow.find('.deleteCommentRow').button().click(function () {

                newRow.find("td:nth-child(9)").remove();
                newRow.find("td:nth-child(10)").remove();

            });
        });
    });
});

因此,在删除时,我想从我的行中删除第9和第10个td元素。

上述代码(仅删除部分)似乎不起作用 任何有关工作的想法/建议都将受到高度赞赏。

谢谢,
Pritish。

2 个答案:

答案 0 :(得分:4)

您可以尝试这样的方法,尝试演示 http://jsfiddle.net/HXB4Z/

HTML

<table border=2>
    <tr>
        <td>jQuery</td>
        <td>mootools</td>
    </tr>
    <tr>
        <td>Dojo</td>
        <td>FUEL</td>
    </tr>
    <tr>
        <td>Raphael</td>
        <td>Rico</td>
    </tr>
    <tr>
        <td>SproutCore</td>
        <td>Lively Kernel</td>
    </tr>
</table>

javascript

$(function() {
   $('tr')
       .find('td')
       .append('<input type="button" value="Delete" class="del"/>')
       .parent()//traversing to 'tr' Element
       .append('<td><input type="button" value="Delete row" class="delrow" /></td>');

    $('.del').click(function() {
       $(this).parent().remove(); //Deleting TD element
    });

    $('.delrow').click(function(){
       $(this).parent().parent().remove(); //Deleting the Row (tr) Element
    });
});

答案 1 :(得分:1)

我同意欧文。你可能想要这样的东西:

newRow.find("td:nth-child(9)").html('');
newRow.find("td:nth-child(10)").html('');