Задать вопрос
Gera11
@Gera11

Как не отображать таблицу если в ней нет tr на JQuery или JS?

<table id="news" class="table" style="margin-top: -1px;">
  <tbody style="font-size: 90%;">
  </tbody>
</table>


Как с помощью JQ или JS сделать так, чтобы таблица вообще не отображалась если в ней нет tr?
добавить display none что-ли если в ней нет записей tr
  • Вопрос задан
  • 188 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
const tableId = 'news';
const trSelector = 'tbody tr';

Вот jquery:

$(`#${tableId}`).show().not(`:has(${trSelector})`).hide();

// или

const $table = $('[id="' + tableId + '"]');
$table.toggle(!!$table.find(trSelector).length);

А вот jquery нет:

(t => t.hidden = !t.querySelector(trSelector))
(document.querySelector('#'.concat(tableId)));

// или (в стили надо будет добавить .hidden { display: none; })

const table = document.getElementById(tableId);
table.classList.toggle('hidden', Array.prototype.every.call(
  table.tBodies,
  n => !n.rows.length
));

UPD. Наконец-то дождались, теперь js тут не нужен:

#news:not(:has(tbody tr)) {
  display: none;
}
Ответ написан
@dimoff66
Кратко о себе: Я есть
Поставить этот код в тэг "script" перед закрывающим тэгом body

const table = document.querySelector("#news")
if (!table.querySelector("tbody tr")) {
  table.style.display = "none"
} else {
  table.style.display = ""
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@bogomazov_vadim
Убрать tbody, перенести его стили в table, далее:



Но в целом странная задача, почему не сделать проверку на бэке, если данные таблицы не статичны.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы