【问题标题】:Java Script not hiding DIVJavascript不隐藏DIV
【发布时间】:2015-04-23 13:40:07
【问题描述】:

我在尝试将 java 脚本插入现有 php 页面(不是我创建的)时遇到问题。

我想要做的是使用一个基于日期隐藏 DIV 的脚本。 div 对时间敏感的项目有很多调用 PayPal,我试图让网页只显示当前可用的选项。

目前,我脑子里有这个:script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1 jquery.min.js"

/脚本

(我确实在代码行之前和之后有 ,但由于某种原因,如果我包含它们,它不会让行显示在这篇文章中!)

我在正文结束前有这个:

var now = new Date();
var futuretime1 = new Date("April 23, 2015 07:57:00");
var futuretime2 = new Date("April 23, 2015 07:58:00");
if(now > futuretime1)
 {
 $("#div1").hide();
if(now > futuretime2)
 {
 $("#div2").hide();
 }
</script>

当页面在 Firefox 中运行时,这似乎甚至无法识别。

我已经尝试了几种不同的 javascript,它们都应该做同样的事情,但似乎没有一个被识别出来。我对编码很陌生,所以我不知道从哪里开始!

真的可以使用一些想法!

【问题讨论】:

  • 你确定你有id为“div1”和“div2”的元素,并且只有一个吗?如果你重复使用“id”值,事情就不会很好。
  • 我们能看到您试图隐藏的 html 吗?
  • 您的第一个 if 缺少右括号 }
  • paypal.com/cgi-bin/webscr" method="post">
    注册
    paypalobjects.com/en_US/i/btn/btn_installment_plan_LG.gif" border="0" name="submit" alt="PayPal - 更安全、更轻松的在线支付方式!">
    paypalobjects.com/en_US/i/scr/pixel.gif" width="1 " height="1">
  • 代码太长,无法发布。只需说 div 和 /div 标签之间的代码(其中只有一组 div1 和 div2 Pointy)设置表格行就足够了。我确实按照 Karl-Andre 的建议添加了括号。我不确定如何手动检查输出 FoX。

标签: javascript jquery


【解决方案1】:

您错过了 if 语句的右括号 }

if (now > futuretime1) {
    $("#div1").hide();
}
if (now > futuretime2) {
    $("#div2").hide();
}

【讨论】:

    【解决方案2】:

    检查new Date().getTime()

    使用时间戳作为检查时间。我不确定现在时间是否等于未来时间,如果您错过了一个右括号

    var now = new Date().getTime();
    var futuretime1 = new Date("April 23, 2015 07:57:00").getTime();
    var futuretime2 = new Date("April 23, 2015 07:58:00").getTime();
    
    if(now > futuretime1)
     {
     $("#div1").hide();
    } 
    if(now > futuretime2)
     {
     $("#div2").hide();
     }
    

    alert(new Date().getTime()); // 时间戳

    【讨论】:

    • 我所做的一切似乎都不起作用。是否有一个非常简单的 javascript 我可以在新页面上尝试看看它是否有效?我可以在网站中创建一个空白的 php 页面。
    【解决方案3】:

    缺少括号并尝试使用 Date.parse 它会给你正确的结果。

    var now = new Date();
    var futuretime1 = new Date("April 23, 2015 07:57:00");
    var futuretime2 = new Date("April 23, 2015 07:58:00");
    
    
    if( Date.parse(now) > Date.parse(futuretime1) )
    {
        $("#div1").hide();
    }
    if(Date.parse(now) > Date.parse(futuretime2))
    {
        $("#div2").hide();
    }
    

    【讨论】:

      【解决方案4】:

      我在这里设置了一个代码笔http://codepen.io/michael-hamilton/pen/OVJZaz 供您查看。单击“测试”以运行检查日期并隐藏 div 的功能。我对此工作没有任何问题。确保您的 Javascript 以正确的 HTML 元素为目标。确保要隐藏的 div ID 在 JS 中与在 HTML 中相同。

      $("#div-1").hide();
      

      您可以通过更改未来日期并再次运行代码来验证这在 codepen 中是否有效。

      对于其他评论者也是如此 - 我检查了 futuretime1futuretime2now 的值,它们的格式都相同

      【讨论】:

      • Michael - div ID 是否也需要 # 作为它的一部分?
      • 不,divid 属性不需要## 是 CSS 中使用的一个选择器,表示 id。 jQuery 也使用这些相同的选择器
      • 您的 div 元素应如下所示:&lt;div id="div-1"&gt;&lt;/div&gt;
      • 我可以让你的 codepen 工作,但是将它复制到一个新的 php 页面并在 Firefox 中运行它对我没有任何帮助。
      • 在 Firefox 中运行,什么也得不到。 :
        div 1
        div 2
        测试
      【解决方案5】:
      You can do this way
      

      // 这将完美运行

      <?php
      $today_date_time = date('Y-m-d H:i:s');
      var $futuretime1 = new Date("April 23, 2015 07:57:00");
      var $futuretime2 = new Date("April 23, 2015 07:58:00");
      ?>
      <script>
      var now = '<?php echo strtotime($today_date_time)?>';
      var futuretime1 = '<?php echo strtotime($futuretime1)?>';
      var futuretime2 = '<?php echo strtotime($futuretime2)?>';
      if(now>futuretime1)
      {
      $("#div1").hide();
      }
      if(now>futuretime2)
      {
      $("#div2").hide();
      }
      </script>
      

      【讨论】:

      • Neelesh - 这些应该插入到哪里?我的“脚本”位于正文结束之前...
      • 它可以添加到任何地方,但应该在脚本的顶部
      猜你喜欢
      • 2011-07-27
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 2021-02-05
      • 2017-10-18
      • 1970-01-01
      相关资源
      最近更新 更多