第一个JS,向经验丰富的JS程序员寻求建议
first JS, looking for advice from experienced JS programmer
我需要编写一个脚本来显示特定日期的特定div。到目前为止,我的伪代码如下所示:
import date from local system, //not sure if can/should do this?
var date == dateImported
switch(date){
case date less than or equal to feb 14th:
div called .valentines{ display: block;}
break;
case date equal to or less than march 17th:
div called .paddys{display: block}
break;
case date between last event and dec 25th:
div called .christmas display: block;
break;
我的问题是:
- 有没有更清洁的方法可以做到这一点?
- 在此脚本中确定日期变量值的最佳方法是什么?
- 我应该如何确保每次过后再次隐藏
div
?
我想我应该尽量不要那么具体,只使用: var mm = today.getMonth()+1;并且每个月都有一个div
,但我想瞄准更高的目标
请不要为我写代码,我想要练习。我只是想要指导,非常感谢。
实现这一点的一种方法是:
向有问题的div 添加两个属性,例如 data-display-after
和 data-display-before
,例如:
<div id="valentines"
data-display-after="2016-02-14 00:00:00"
data-display-before="2016-02-15 00:00:00">...
最初隐藏这些div(使用CSS)。
在页面加载时,将当前日期(new Date
)转换为上述格式。
对于文档中具有 data-display-before
属性的每个元素(您需要 querySelectorAll
),比较属性值 ( getAttribute
),如果currentDate >= data-display-after && currentDate <= data-display-after
,则显示该元素。
这样,您的JS和标记将被"解耦"并且易于维护。
我会使用momentjs来检查日期。
var today = moment();
today.isBetween('2014-1-1', '2017-1-1'); // true
today.isBetween('2001-1-1', '2010-1-1'); // false
使用moment,您可以查询之前,相同,之后,两者的组合等。
有了它,您可以使用开关和添加/删除类来隐藏/显示基于这些开关的div,并使用 javascript 库(即 jquery)。
相关文章:
- 如何让程序员在javascript中实现正确的回调
- 如何在没有单词的情况下从命令行运行Node.js程序'节点'
- 为什么有些jQuery程序员使用像$.get、$.getJSON和$.when这样的jQuery函数来代替$.ajax
- 为什么Javascript程序员更喜欢在代码中重复字符串作为常量,而不是使用枚举类型的对象
- 从shell脚本中杀死Node.js程序
- Mongo无法使用node.js程序
- 在three.js程序中运行一个webgl函数
- 婴儿步骤 节点.js程序打印不确定的结果
- 如何开始使用 jQuery Mobile?(程序员背景)
- 如何在node.js内运行JS程序
- 为什么很多程序员把逗号移到下一行
- 如何使这个 Node.js 程序异步
- 第一个JS,向经验丰富的JS程序员寻求建议
- 如何记录node.js程序中的每一个“抛出”
- 为什么我的节点.js“程序终止”而没有错误
- 我如何通过方法写入数据 response.write 从 MySQL 服务器到 Node.js 程序后
- 使用 open.window() 在新窗口中打开 js 程序
- 我的Processing.js程序中的所有角度怎么都是度而不是弧度呢
- 检测大型JS程序中的任何变量何时设置为NaN
- 是否存在一种神奇的后端服务,前端程序员可以在其中存储数据