2015-07-21 2 views
0

Я повторяю строки проверила строки и хочу удалить текущую строку, если определенный аргумент является истинным, но то, что я до сих пор удаляет неверный. Любая помощь оценивается. Это то, что у меня есть.Удалить строку таблицы в jquery с использованием имени таблицы

$('input[type=checkbox]').each(function() { 
    if (this.checked == true) { 
     var del_id = $(this).closest('tr').attr('data-id'); 

     $.each(del_arr, function(index, value) { 
      if (value == del_id) { 
       $('#spreadsheetstable tr:last').remove(); 
       console.log('Removing :'+ del_id +' And ' + value); 
      } 
     }); 
    } 
}); 
+0

Вы можете совместно использовать html? – Sushil

ответ

0

Что-то вроде этого:

$('input[type=checkbox]:checked').each(function() { 

    var $tr = $(this).closest('tr'); 

    var del_id = $(this).closest('tr').attr('data-id'); 

    $.each(del_arr, function(index, value) { 

     if (value == del_id){ 
      $tr.remove(); 
      console.log('Removing :'+ del_id +' And ' + value); 
      return false; 
     } 
    }); 
}) 
+0

Ничего себе это работает. Что вам понравилось? – whoopididoo

+0

Проблема в том, что вы использовали tr: last, что означает последнюю строку на столе. Я обновил селектор, чтобы посмотреть только на проверенные строки, а затем установил строку для удаления в то же время (оператор before), который вы проверили для значения идентификатора данных в строке. Возврат false (на всякий случай, если вы не знаете) прерывает поиск массива для соответствующего идентификатора. – nril

+0

Не нужно переходить '$ (this) .closest ('tr')' дважды, просто замените второй вызов '$ tr'. –

0

Если вы используете JQuery DataTables это лучше удалить строку с помощью метода API DataTables row().remove(), а не манипулировать DOM напрямую.

$('input[type=checkbox]:checked').each(function() { 
    var $tr = $(this).closest('tr'); 
    var del_id = $tr.attr('data-id'); 
    $.each(del_arr, function(index, value) { 
     if (value == del_id){ 
     $('#spreadsheetstable').DataTable().row($tr).remove().draw(false); 

     console.log('Removing :'+ del_id +' And ' + value); 
     return false; 
     } 
    }); 
}); 
+0

Спасибо. Также работает – whoopididoo

+0

@ Gyrocode.com. Я пытаюсь использовать это, но он не работает? Я не могу понять, как получить экземпляр данных. – r3wt

+0

@ r3wt, используйте '$ ('# example'). DataTable()', чтобы получить экземпляр API DataTables, где 'example' - ваш идентификатор таблицы. –