jquery 如何使用JavaScript找到空的classname表?

dohp0rv5  于 2023-10-17  发布在  jQuery
关注(0)|答案(3)|浏览(84)

我有一个网页,这是动态生成的HTML表格。我没有任何控制如何生成表,但我可以把JavaScript代码。
我想做的是,有一些表是空的,即。它们只有<th>行,没有<td>行。我想使用JavaScript隐藏/删除这些表。
所有的table都有一个类“卡表”。
是否有可能找到所有的表与“卡表”类,如果有少于1行,然后删除/隐藏它?
任何帮助都是感激不尽的。
先谢了。
我只是尝试使用jQuery或JavaScript,但我不知道如何使用相同的类遍历表,并删除/隐藏它们。

yqhsw0fo

yqhsw0fo1#

你可以在jQuery中这样做

$(document).ready(function() {
    $('table.card-table').each(function() {
        // If the table has less than 2 rows, hide it
        if ($(this).find('tr').length < 2) {
            $(this).hide();
        }
    });
});
67up9zun

67up9zun2#

不显示包含零行的表

$(function() {
  $('table.card-table').each(function() {
    const $rows = $(this).find('tr');
    $(this).toggle($rows.length > 0); // show if more than 0
  });
});

香草

window.addEventListener('DOMContentLoaded', () => {
  document.querySelectorAll('table.card-table').forEach(table => {
    const rows = table.querySelectorAll('tr');
    table.hidden = rows.length === 0; // hide if 0
  });
});
nsc4cvqm

nsc4cvqm3#

表有一个内置的API,用于访问和计数rowscolumns,以及tBodies。这也考虑到了空表可能有一个非空的thead来标记空列。
使用它:

for (const table of document.querySelectorAll('table.card-table')) {
  table.hidden = [...table.tBodies].every(body => body.rows.length === 0);
}

当你确定文档中所有有问题的表都被正确解析时,确保正确运行这段代码,例如。在DOMContentLoaded监听器中运行。

也就是说,首先最好不要呈现这些表。所以我强烈建议在生成表的代码部分修复这个问题。

相关问题