Удалить строку в html, если все ячейки пусты

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

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

<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();
 }    
 });
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
975
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Просто измените свой скрипт, чтобы перебирать элементы 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>

@mcadamsjustin Вы нажали «Выполнить фрагмент кода»? Он удаляет первую и третью строку, как вы и просили.

Jon Uleis 28.01.2019 05:21

@Mukyuu Это то, что изначально было у ОП.

Jon Uleis 28.01.2019 05:23

Я запустил фрагмент в Firefox, не сработало. Затем я запустил его в Chrome, и это сработало. Это кажется странным

mcadamsjustin 28.01.2019 05:28

@mcadamsjustin Спасибо за это - я также изменил код для работы в Firefox. Добавление функциональности trim для обеспечения отсутствия пробелов в сравнении строк исправило это.

Jon Uleis 28.01.2019 05:30

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

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

http://jsfiddle.net/1g7hqkvb/

это работает, но @JonUleis ответил первым, спасибо за помощь

mcadamsjustin 28.01.2019 05:32

@mcadamsjustin: Да, спасибо, что проголосовал за моего друга :d

Tomato32 28.01.2019 05:36

Другие вопросы по теме