如果使用jQUery删除所有行,则删除整个表

时间:2016-09-14 07:24:54

标签: javascript jquery

我有一个表,其中包含每行一个表格单元格中的日期。我使用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/

非常感谢,

Ĵ

5 个答案:

答案 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();
    }
});
相关问题