清理空表时出现逻辑错误
Logic Error Cleaning up Empty Tables
本文关键字:错误 更新时间:2023-09-26
我的文档中有许多表,都在类table.grid
下。我试图浏览并删除任何没有<td>
字段的表头,即生成的没有结果的空表/表。表头的表类的继承结构是table.grid tbody tr.header th
,td随后是table.grid tbody tr td
。目前我的代码如下:
$('table.grid tbody tr.header th').each(function (i) {
var remove = 0;
var tds = $(this).parents('tbody').find('tr td:nth-child(' + (i + 1) + ')');
tds.each(function (j) {
if (this.innerHTML == '') remove++;
});
if (remove == ($('table.grid tbody tr td').length - 1)) {
$(this).hide();
tds.hide();
}
});
但不幸的是,这会删除每个表头。不仅仅是那些没有内容的人。我相信我的if语句调用td
字段不正确,但我不确定如何修复它。我曾尝试将其调用为$(this).next('table.grid tbody tr td').length - 1)
,也尝试过closest()
运算符,但都没有成功。
我不能100%确定我是否理解您隐藏表的确切要求。我假设一个"空"表中只有一行包含标题信息。任何其他行都将包含内容,从而使该表不为空。我决定利用这一点并检查非标题行的数量:
$('table.grid').each(function (i) {
//Select all rows in this table that aren't .header
var rows = $(this).find("tr").not(".header");
if (rows.length == 0)
{
//no rows except for header - hide the table.
$(this).hide();
}
});
您可以使用您提供的HTML在这里看到这一点。它隐藏了第二个表,因为它在标题之外没有行。
只是一张纸条。。。如果您控制这个应用程序的服务器端,那么最好的策略就是检测一个空的结果集并跳过它,这样以后就不必清理它了。你可能没有这个选项,所以这可能有助于你在浏览器中处理它。
如果我误解了你需要隐藏什么以及何时隐藏,请告诉我。
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 我如何修复包含在captcha的addthis中的错误
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- CKFinder 3为所选文件返回错误的URL
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 铬:“;未捕获的语法错误:意外的标记:"
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- 相位器状态未捕获参考错误
- /undefined在我的404错误日志中多次出现
- Javascript未捕获语法错误意外的标识符错误
- javascript:如何在antlr生成的Lexer中进行错误处理
- Angularjs工厂注入错误
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- 为什么忽略了eval()代码中的语法错误