Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用日期循环jquery隐藏元素_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用日期循环jquery隐藏元素

Javascript 使用日期循环jquery隐藏元素,javascript,jquery,html,Javascript,Jquery,Html,我想隐藏元素(div),但要使用日期循环 我有以下表格结构: HTML 我有这段代码来查找Div和hide/show中的每个元素 $(".container-c table tr td div#step_form_1").each(function() { $(this).find('span').filter(":contains('"+str+"')").length > 0 ? $(this).s

我想隐藏元素(div),但要使用日期循环

我有以下表格结构:

HTML


我有这段代码来查找Div和hide/show中的每个元素

$(".container-c table tr td div#step_form_1").each(function()
                  {

                        $(this).find('span').filter(":contains('"+str+"')").length > 0 ? $(this).show() : $(this).parents('div.container-c').fadeOut();
                  }); 
但是我将变量放入
过滤器(“:contains(““+str+”)”)中的方式
隐藏了所有而不是数组

 var pol = "25/01/2016";
 var str= [];
 var monthNames = [ "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" ];

                        for ( var i = 5; i >= 0; i--) {

                      var now = new Date();
                      var date = new Date(now.setMonth(now.getMonth() - i));
                      var datex = ("0" + date.getDate()).slice(-2) + "-" + ("0" + (date.getMonth() + 1)).slice(-2) + "-" + date.getFullYear();

                            str.push(monthNames[date.getMonth()] + "/" + date.getFullYear());

                    }
                    alert(str);
                     $(".container-c table tr td div#step_form_1 span").each(function(index)
                  {

                        $(this).filter(":contains('"+str[index]+"')").length > 0 ? $(this).show() : $(this).parents('div.container-c').fadeOut();
                  }); 

这是我的

您实际上是在执行
字符串串联
,而不是将元素添加到
数组中。您需要将
str
变量声明为数组,并使用
push
将元素添加到其中。在each循环期间,可以使用
each
函数的
index
迭代数组中的相应元素

 var pol = "25/01/2016";
 var str= [];
 var monthNames = [ "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" ];

                        for ( var i = 5; i >= 0; i--) {

                      var now = new Date();
                      var date = new Date(now.setMonth(now.getMonth() - i));
                      var datex = ("0" + date.getDate()).slice(-2) + "-" + ("0" + (date.getMonth() + 1)).slice(-2) + "-" + date.getFullYear();

                            str.push(monthNames[date.getMonth()] + "/" + date.getFullYear());

                    }
                    alert(str);
                     $(".container-c table tr td div#step_form_1 span").each(function(index)
                  {

                        $(this).filter(":contains('"+str[index]+"')").length > 0 ? $(this).show() : $(this).parents('div.container-c').fadeOut();
                  }); 

工作示例:

您实际上是在执行
字符串串联
,而不是将元素添加到
数组中。您需要将
str
变量声明为数组,并使用
push
将元素添加到其中。在each循环期间,可以使用
each
函数的
index
迭代数组中的相应元素

 var pol = "25/01/2016";
 var str= [];
 var monthNames = [ "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" ];

                        for ( var i = 5; i >= 0; i--) {

                      var now = new Date();
                      var date = new Date(now.setMonth(now.getMonth() - i));
                      var datex = ("0" + date.getDate()).slice(-2) + "-" + ("0" + (date.getMonth() + 1)).slice(-2) + "-" + date.getFullYear();

                            str.push(monthNames[date.getMonth()] + "/" + date.getFullYear());

                    }
                    alert(str);
                     $(".container-c table tr td div#step_form_1 span").each(function(index)
                  {

                        $(this).filter(":contains('"+str[index]+"')").length > 0 ? $(this).show() : $(this).parents('div.container-c').fadeOut();
                  }); 

工作示例:

感谢您的支持,但我有一个问题,为什么只显示2个元素?如果
循环
包含从2016年1月1日到2015年8月8日的内容,并且我在表中的内容是2016年1月、2015年11月、2015年10月、2015年8月,并且我的最后日期是2015年1月15日,那么元素隐藏是最后一个。感谢您的支持,但我有一个问题,为什么只显示2个元素?如果
循环包含从2016年1月1日到2015年8月的内容,并且我在表中的内容为2016年1月、2015年11月、2015年10月、2015年8月,并且我的最后日期为2015年1月15日,则元素隐藏是最后一个。