在插入jQuery之前操纵克隆

时间:2011-09-10 00:34:33

标签: jquery html-table append

我正在尝试克隆表中的一行,稍微操作一下,然后使用以下命令将其附加到表的末尾:

    $('a#AddAnotherLine').live('click', function() {

    var CloneRow = $('table#OptionsTable >tbody tr:first').clone();

    // Strip out value on first input type
    $(CloneRow + 'td:nth-child(1) > :input').attr('value', '');

    $('table#OptionsTable >tbody').append(CloneRow);

});

我遇到的问题是我的操作位正在影响表上的所有行,而不是克隆的那些我(相信)我创建了一个句柄。使用此句柄进行实际附加的最后一行正常工作,所以我有点困惑。

jsFiddle Example

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

替换:

$(CloneRow + 'td:nth-child(1) > :input').attr('value', '');    

使用:

$(CloneRow).find('td:nth-child(1) > :input').attr('value', '');

示例:http://jsfiddle.net/Tjj9C/5/

最初,使用基本上是将您的克隆转换为字符串[object Object],因此您的选择器看起来像[object Object]td:nth-child(1) > :input。所以基本上每行选择td:nth-child(1) > :input