2014-12-29 2 views
0

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

Проблема, с которой я сталкиваюсь: мне нужно добавить некоторые динамические элементы в новую строку, но это должно быть только для 1 строки. Если новая строка динамически добавлена, я хочу, чтобы предыдущая строка удаляла те элементы, которые я добавил динамически.

Я попытался использовать метод .remove(), но это все еще показывает.

Это то, что я делаю:

var lastTableRow = $('#mainTable tr:last').clone(); 
lastTableRow.attr('id', 'row_' + rowIDNumericOnly); 
$('#mainTable tr:last').after(lastTableRow); 

// finally, add a button into this new row: 

$('#row_' + rowID + ' td:nth-child(2)').append('<input type="button" ID="cmdGetName_' + rowID + '" value="Fetch CAS Name" onClick="GetName($(\'#Names_' + rowID + '__Number\').val(), ' + CAS+ ')" />');   

теперь, когда пользователь нажимает кнопку «Добавить строку», она вызывает функцию/метод выше, чтобы сделать то же самое. На этом этапе я хочу удалить динамически добавленную кнопку «cmdGetName_», если она существует при клонировании предыдущей строки.

любые идеи?

при удалении, я делаю следующее:

$('#cmdGetName_' + oldRowIDNumericOnly).remove(); 

где oldRowIDNumericOnly принимает последнюю строку добавляется в таблицу, и получить его идентификатор. rowIDNumericOnly - это НОВЫЙ идентификатор (из предыдущего идентификатора строки таблицы и добавления 1 к нему)

+2

Почему бы вам не создать кнопку один раз и добавить ее в новую строку? Это удалит его из старого места. – Barmar

+0

'.remove()' должно было работать, вы, должно быть, допустили ошибку в селекторе. Самый простой способ - дать кнопке класс и использовать '$ (". Buttonclass "). Remove()' перед добавлением нового. – Barmar

+0

Что я вижу, так это то, что по какой-то причине кажется, что добавляет еще одну кнопку в новую строку, если предыдущая строка содержит кнопку, но не выглядит правильно или работает правильно. Я думаю, что селектор верен. –

ответ

3

Дайте динамический ввод классу, например. class="CmdGetName". Тогда вы можете сделать:

var oldLastTableRow = $("#mainTable tr:last"); 
oldLastTableRow.find(".CmdGetName").remove; 
var lastTableRow = oldLastTableRow.clone(); 
+0

LOVE YOU! Спасибо. Кажется, что это работает при первоначальной проверке. –

Смежные вопросы