2016-08-24 3 views
-1

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

Как я могу это исправить?

Вот скрипку:

FIDDLE

Чтобы воспроизвести проблему, вам нужно сделать, это:

  1. Нажмите Edit Properties.
  2. Нажмите Add Row и добавьте пару свойств (убедитесь, что вы оставили одну строку полностью пустой).
  3. Нажмите Save.
  4. Нажмите Remove Empty Rows.
+3

" Вопросы, требующие помощи по отладке («почему этот код не работает?») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для воспроизведения ** в вопросе его Эльф **. Вопросы без четкого описания проблемы не полезны для других читателей. » –

+0

@JasonP это может быть я, но я действительно не вижу, как я могу сделать свой вопрос более ясным для вас ... Я включил JSFiddle со всеми код, который я написал, вместе с подробным объяснением того, как воспроизвести проблему.Что вы хотите больше? – laker001

+1

В правилах stackoverflow указано, что код, относящийся к вопросу, должен быть размещен ** в вопросе **, а не на другом не- веб-сайт stackoverflow. jsfiddle - отличное дополнение, но код все равно должен быть ** в тексте вопроса **. –

ответ

1

Проблема в том, что вы ищете td-метки в строке 3, и ваша голова не имеет тега td. Поэтому текст пуст, и он будет удален.

+0

Спасибо, очень просто исправить! – laker001

+0

Исправить в http://jsfiddle.net/v4n2vhd0/ –

1

См http://jsfiddle.net/a8wLy18w/

Я добавил TBODY, так что вы можете отличить тело от заголовка

<table align="center" class="table table-bordered table-hover hide4" id="tab_properties"> 
     <thead> 
     <tr> 
      <th class="text-center col-lg-3"> Property </th> 
      <th class="text-center col-lg-4"> Value </th> 
      <th class="text-center col-lg-1"></th> 
     </tr> 
     </thead> 
     <tbody> 

     </tbody> 
    </table> 

Затем я изменил свое добавление и удаление использовать TBODY в JQuery

$('#click').on('click', function() { 
    $("#tab_properties tbody tr").each(function() { 
    var cell = $.trim($(this).find('td').text()); 
    if (cell.length == 0) { 
     console.log('empty'); 
     $(this).addClass('nodisplay'); 
    } 
    }); 
}); 

$('#add_property').unbind('click').click(function() { 
    $('#tab_properties tbody').append("<tr><td><input id=\"pn" + properties_id + "\" class=\"editable-input\"></td><td><input id=\"pv" + properties_id + "\" class=\"editable-input\"></td><td><div id=\"pr" + properties_id + "\" class=\"glyphicon glyphicon-remove remove_property\" type=\"button\" style=\"cursor:pointer\"></div></td></tr>"); 
    properties_id++; 
}); 
+0

Спасибо, это еще один способ сделать это! – laker001