За последние 24 часа нас посетили 17329 программистов и 1622 робота. Сейчас ищут 2052 программиста ...

Удаление пустых строк из таблиц на Jquery

Тема в разделе "Сделайте за меня", создана пользователем gw1516, 25 апр 2019.

  1. gw1516

    gw1516 Активный пользователь

    С нами с:
    4 май 2017
    Сообщения:
    29
    Симпатии:
    0
    Здравствуйте!
    на странице есть таблицы, вида

    HTML:
    1. <tr><td colspan="3">Заголовок1</tr>
    2. <tr>Строка1<td>хм</td><td>хм</td><td>+</td></tr>
    3. <tr>Строка2<td>+</td><td>+</td><td>+</td></tr>
    4. <tr>Строка3<td>+</td><td>хм</td><td>хм</td></tr>
    5. <tr><td colspan="3">Заголовок2</tr>
    В каждой таблице нужно удалить строки, в которых содержимое всех ячеек, кроме первой равно '+'. Т.е. в данном примере нужно удалить строку №2

    Раньше пользовался таким скриптом

    Код (Javascript):
    1. var tables = $('table');
    2. tables.each(function(i, table) {
    3.     var columns = $('tr:first td', table).length - 1;
    4.     $('tr', table).each(function(i, tr) {
    5.         if ($('td',tr).filter(function(i,td){
    6.             return $.trim($(td).html()) ==='';
    7.             }).length === columns){
    8.              $(tr).remove();
    9.                 }
    10.         });
    11.         });
    но этот скрипт не учитывает атрибут colspan, к тому же проверка теперь должна быть не на пустоту, а на содержание символа '+'
     
    #1 gw1516, 25 апр 2019
    Последнее редактирование: 25 апр 2019
  2. gw1516

    gw1516 Активный пользователь

    С нами с:
    4 май 2017
    Сообщения:
    29
    Симпатии:
    0
    Разобрался

    Код (Javascript):
    1. var tables = $('table');
    2. var colCount ='0';
    3. tables.each(function(i, table) {
    4.    
    5.     var cols = $('tr:first td', table).attr('colspan');
    6.    
    7.     if (cols >0){
    8.         colCount = $('tr:first td', table).attr('colspan') - 1;
    9.     }else{
    10.         colCount = $('tr:first td', table).length - 1;
    11.     }
    12.    
    13.     $('tr', table).each(function(i, tr) {
    14.  
    15.         if ($('td',tr).filter(function(i,td){
    16.             return $.trim($(td).html()) ==='-';
    17.             }).length === colCount){
    18.                 $(tr).remove();
    19.                 }
    20.         });
    21.        
    22.         });