Дублирующиеся id
атрибуты являются недопустимыми html, поэтому начните с их удаления из кнопок (вместо этого используйте имя класса)
Вы можете переместить <tr>
, связанный с кнопкой, в другую таблицу, обработав событие .click()
, а затем используя
var row = $(this).closest('tr'); // get the tr element
otherTable.append(row); // move it to the other table
Дайте каждому <tbody>
атрибут id
и дайте кнопкам имя класса (скажем) class="move"
. Поскольку строки будут динамически перемещаться между таблицами, вам потребуется использовать делегирование события (функция .on
) для обработки события .click()
<table>
<thead> ... </thead>
<tbody id="include">
<tr>
....
<td><input type="button" class="move ..." value="Move" /></td>
</tr>
.... // more <tr> elements
</tbody>
</table>
<table>
<thead> ... </thead>
<tbody id="exclude">
....
</tbody>
</table>
Затем добавьте следующий скрипт
var include = $('#include');
var exclude = $('#exclude');
include.on('click', '.move', function(){
var row = $(this).closest('tr');
exclude.append(row);
});
table2.on('click', '.move', function(){
var row = $(this).closest('tr');
include.append(row);
});
Обратите внимание: если вы хотите, чтобы текст каждой кнопки отображался по-разному, вы можете изменить его в обработчике .click
, используя $(this).text('Remove');
(для установки текста на «Удалить»)
См. эту скрипку для рабочего примера.