Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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 周末隐藏元素_Javascript - Fatal编程技术网

Javascript 周末隐藏元素

Javascript 周末隐藏元素,javascript,Javascript,我有一些HTML/javascript元素,我只想在周一到周五可见 我怎样才能做到这一点?我只知道如何用这个代码在特定日期隐藏它 window.setInterval(function(){ var current = new Date(); var expiry = new Date("October 30, 2014 12:00:00") if(current.getTime()>expiry.getTime()){ $('#div1').hide();

我有一些HTML/javascript元素,我只想在周一到周五可见

我怎样才能做到这一点?我只知道如何用这个代码在特定日期隐藏它

window.setInterval(function(){

  var current = new Date();
  var expiry  = new Date("October 30, 2014 12:00:00")

  if(current.getTime()>expiry.getTime()){
    $('#div1').hide();
  }

}, 3000);

$('#one').show(); 
var d = new Date();
if(d.getDay() == 6 || d.getDay() == 7)
{
   $('#div1').hide();
}

您可以使用获取一周中的某一天。然后将其隐藏到第6天和第0天。

首先,使用获取一周中的某一天

var DayOfTheWeek = new Date().getDay();  //0=Sun, 1=Mon, ..., 6=Sat
然后,根据日期显示元素

if(DayOfTheWeek == 6 || DayOfTheWeek == 0){
    $('#div1').hide();
} else {
    $('#div1').show();
}
函数Date.getDay将是您的好友。它返回一周中每天的数字。星期日=>0;星期一=>1

var d = new Date();
var n = d.getDay();
因此,您可以轻松检查一天是否在1到5之间。如果是,则显示您的资料:

使用函数

 if(current.getDay() == 6 || current.getDay() == 0){
    $('#div1').hide();
  }
试试这个代码

window.setInterval(function(){

  var current = new Date();
  var expiry  = new Date("October 30, 2014 12:00:00")

  if(current.getTime()>expiry.getTime()){
    $('#div1').hide();
  }

}, 3000);

$('#one').show(); 
var d = new Date();
if(d.getDay() == 6 || d.getDay() == 7)
{
   $('#div1').hide();
}

对于LOL,这里有一行代码演示如何通过变量名调用jQuery函数,并使用模运算避免对.getDay的两次单独调用:

因此,周一至周五给出0。。4,周六和周日给出5和6,允许一次比较来检查周末和工作日

对于子孙后代,这里有一个潜在的有用帮助函数:

Object.defineProperty(Date.prototype, 'isWeekday', { value: function() {
    return (this.getDay() + 6) % 7 <= 4;
}));

这是一个更易于维护的版本。默认情况下,应显示元素div1,并且仅当检测到适当的天数时才将其隐藏

var days_to_hide = {
  0 : "Sunday",
  6 : "Saturday"
}

var today = new Date().getDay();
if( typeof days_to_hide[ today ] !== "undefined" ){
  $('#div1').hide();
}

它更易于维护的原因是,您可以自由编辑days_to_hide定义,而无需修改实际执行hide命令的条件表达式。

请参阅:只需注意-任何具有最少JS知识的人都可以绕过此元素隐藏。。。此外,未启用JS的用户也不会从您的逻辑中受益。@Lix true在旁路中,但是,鉴于现在有多少网站完全依赖JS,现在没有JS的浏览器几乎不能被认为是功能性的。@Alnitak-不是没有JS的浏览器,而是一个出于安全原因禁用JS的用户,我想这会成为用户的问题,因为正如你所说,没有JS的浏览器功能性很差。这里我的主要观点是,隐藏元素根本不能保证用户看不到内容。getDay返回0。。6,并且从不返回字符串!然而,他只是松散地比较两个字符串==,而不是==,所以它会起作用…@something这里是的,我会给他另一个-1,如果我可以的话-故意对一个只返回数字的函数使用一个字符串的松散比较,这是非常松散的。@alnitak Jup,真的。TBH尽管如此,此页上的每个答案都应该被否决,因为none use==,因为即使是松散地比较新日期。getDay==6也一样糟糕。@有些东西我的答案没有使用相等运算符,松散或其他;-是的,我同意你的观点:使用松散的比较。如果没有它们,JS将是一种更好的语言。
var days_to_hide = {
  0 : "Sunday",
  6 : "Saturday"
}

var today = new Date().getDay();
if( typeof days_to_hide[ today ] !== "undefined" ){
  $('#div1').hide();
}