我有以下代码,它做了两件事:
然而,第二件事情不正常。当表的所有行都具有过去的日期时,不是仅仅删除表,只要一行具有过去的日期,它就会删除整个表,即使将来仍有多行仍有日期。
我已经设置了一个小提琴,所以你能看到这个。 http://jsfiddle.net/g6a2nt0k你会注意到表中有两个日期...一个在过去,一个在将来,所以它应该仍然显示未来的那个,但它隐藏了整个表。
$(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(); }
}
});
});
任何建议都将不胜感激。
答案 0 :(得分:3)
此行返回0:
var count = currenttable.children('tr').length;
为什么呢?因为浏览器在表的内容周围添加了tbody
标记,所以实际上没有tr
元素是表的子/直接后代。这就是为什么它返回0。
将其更改为:
var count = currenttable.find('tr').length;