Javascript Jquery:隐藏空表行
我试图编写一个脚本,检测表Javascript Jquery:隐藏空表行,javascript,jquery,html,html-table,tablerow,Javascript,Jquery,Html,Html Table,Tablerow,我试图编写一个脚本,检测表tds是否为空,以及它们是否为隐藏父表tr 我搜索了Stack Overflow并找到了其他脚本,但似乎没有一个适合我 到目前为止,我已经: $(".table tr").each(function() { var cell = $(this).find('td').html(); if (cell == null){ console.log('empty'); $(
td
s是否为空,以及它们是否为隐藏父表tr
我搜索了Stack Overflow并找到了其他脚本,但似乎没有一个适合我
到目前为止,我已经:
$(".table tr").each(function() {
var cell = $(this).find('td').html();
if (cell == null){
console.log('empty');
$(this).parent().addClass('nodisplay');
}
});
但就是不能让它工作。任何建议都将不胜感激
小提琴:试试这个-
$("table tr td").each(function() {
var cell = $(this);
if ($(cell).text().length == 0){
console.log('empty');
$(this).parent().addClass('nodisplay');
}
});
只返回第一个匹配元素的内容,因此,如果您的行有多个单元格,这将不起作用。可能是更好的修复方法,除非单元格中有图像或其他空标记
$("table tr").each(function() {
var cell = $.trim($(this).find('td').text());
if (cell.length == 0){
console.log('empty');
$(this).addClass('nodisplay');
}
});
你应该试试这个
jQuery(document).ready(function(e) {
jQuery(jQuery('table tr td:empty').parents('tr')).addClass('nodisplay');
});
似乎您想要隐藏只有空白内容的行(但单元格可能有其他元素子节点)。使用纯javascript:
var rows = document.getElementsByTagName('tr');
var i = rows.length;
while (i--) {
if ( !trim(getText(rows[i])) ) {
rows[i].className += ' nodisplay';
}
}
助手:
function trim(s) {
return s.replace(/(^\s*)|(\s*$)/g, '');
}
function getText(el) {
if (typeof el.textContent == 'string') {
return el.textContent;
} else if (typeof el.innerText == 'string') {
return el.innerText;
}
}
如果表没有行,则使用jquery隐藏表
$('.tblClass').each(function(){
if($(this).find('.rows').length == 0){
$(this).hide();
}
});
工作种类-隐藏所有trs,不管它们是否有content@MeltingDog查看演示:)抱歉,但是在您发送的小提琴上,如果添加边框,您仍然可以看到另一个TDS,您的“空”标准是什么?是没有文本,或者没有子节点,或者没有元素,只有空格,还是什么都没有(例如,
)?@RobG一点也不像你的例子,所以我们只是猜测一下?我的例子和穆萨的答案完全一样。
$('.tblClass').each(function(){
if($(this).find('.rows').length == 0){
$(this).hide();
}
});