我有一个表,其中包含每行一个表格单元格中的日期。我使用Javascript来检测今天的日期,如果单元格中的日期在今天的日期之前,我会删除整个表格行。
$(function(){
$('.table-cell-containing-date').each(function(key,value){
var currentDate = new Date();
currentDate.setHours(0, 0, 0, 0);
var date = new Date($(value).text());
if(date < currentDate){
$(value).parent().remove();
}
});
});
我正在尝试对此进行修改,以便一旦特定月份的表格中的所有日期都在过去(并因此被删除),则应删除整个表格。
我甚至不知道从哪里开始说实话。我需要检查整个表,看看在上面的Javascript被触发后是否存在每个表中的任何行,如果没有,则删除整个表。
我已经设置了一个小提琴,您将看到第一行被删除,因为日期是过去的。 https://jsfiddle.net/67ktea40/1/
非常感谢,
Ĵ
答案 0 :(得分:1)
添加以下两行
$(function(){
$('.production-date').each(function(key,value){
var currentDate = new Date();
currentDate.setHours(0, 0, 0, 0);
var date = new Date($(value).text());
if(date < currentDate){
$(value).parent().remove();
var count = $('.tour-dates-table tr').length;
if(count<=2) $('.tour-dates-table').remove();
}
});
});
更新了您的问题的答案版本
$(function(){
$('.production-date').each(function(key,value){
var currentDate = new Date();
currentDate.setHours(0, 0, 0, 0);
var date = new Date($(value).text());
if(date < currentDate){
var currenttable = $(value).parent().closest('table');
$(value).parent().remove();
var count = $(currenttable).children('tr').length;
if(count<=2) { $(currenttable).remove(); }
}
});
});
答案 1 :(得分:0)
检查它是否为空并且remove为
function deleteIfEmpty() {
var tbody = $("table tbody");
if (tbody.children().length == 0) {
$("table").remove();
}
}
在每次删除行后调用它。
答案 2 :(得分:0)
检查表是否没有tr然后将其删除
if (!$('table').find('tr').length){
$('table').remove();
}
答案 3 :(得分:0)
您可以查看表.has()
没有production-date
元素,然后删除整个表格。
var table = $('table.tour-dates-table');
if (table.has(".production-date").length == 0) {
table.remove();
}
在DEMO中,我删除了包含tr
的所有.production-date
答案 4 :(得分:0)
首先将一个事件绑定到表的容器div
。然后检查表行的长度。如果它为零则删除表。:
$('#container-div').on('DOMSubtreeModified', function(){
if($('#myTable tr').length==0){
$('#myTable').remove();
}
});