Удалить строку в html, если все ячейки пустые - PullRequest
0 голосов
/ 28 января 2019

Я создаю таблицу на основе некоторых внешних данных.В каждой строке нет данных в столбцах, которые я возвращаю.Я хотел бы удалить строку, в которой все пустые ячейки.Я нашел код для удаления строки, если одна ячейка пуста, но разрешена одна пустая ячейка.Я хотел бы удалить первую и третью строки.

Я пробовал это, но он удаляет все строки:

<table border="1">
<tr>
 <td></td>
 <td></td>
</tr>
<tr>
  <td>123</td>
  <td></td>
 </tr>
 <tr>
  <td></td>
  <td></td>
 </tr>
<tr>
 <td>456</td>
 <td></td>
</tr>

$("td").each(function() {
  if (this.innerText === '') {
    this.closest('tr').remove();
 }    
 });

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Вы можете использовать каждый из элементов tr, как это.Надеюсь помочь, мой друг :))

$('tr').filter(
    function(){
        return $(this).find('td').length == $(this).find('td:empty').length;
    }).hide();

http://jsfiddle.net/1g7hqkvb/

0 голосов
/ 28 января 2019

Просто измените ваш скрипт, чтобы перебрать tr элементов вместо td.

Если текстовое содержимое строки tr пустое, это означает, что все его ячейки также пусты.Вот рабочая демонстрация:

$("tr").each(function() {
  if (!$(this).text().trim()) {
    this.remove();
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<table border="1">
  <tr>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td>123</td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td>456</td>
    <td></td>
  </tr>
</table>
...