Манипулировать клоном перед вставкой jQuery - PullRequest
2 голосов
/ 10 сентября 2011

Я пытаюсь клонировать строку в таблице, немного манипулировать ею, а затем добавить ее в конец таблицы, используя:

    $('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

Любая помощь с благодарностью.

1 Ответ

4 голосов
/ 10 сентября 2011

Заменить:

$(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 каждую строку.

...