javascript - 对 JavaScript 对象数组中的日期事件进行排序,并与当前日期进行比较以显示在表单中

标签 javascript jquery html

我正在编写一个客户端代码,其中有很多学生可以注册的事件。每个事件都有一个日期,在页面加载时我想将事件日期与当前日期进行比较,并仅显示那些尚未结束的事件(不早于今天),这些事件将显示在下拉列表中。阅读了其他答案后,这就是我写的。我无法找到其中的错误。

我的 JavaScript:

  function addFormField() {
    var event=[]
event[0]={name:"calendarevent1", eventdate:"October 12, 2013"}
event[1]={name:"calendarevent2", eventdate:"November 2, 2013"}
event[2]={name:"calendarevent1", eventdate:"December 20, 2014"}

var today = new Date();

event.sort();

var nextLater = null;

for (var i = 0; i < event.length; i++) {
  if (event[i] > today) {
    nextLater = event[i];
    break;
for (i = 0; i < nextLater.length; i++) {
    $("#EventList").append('<option>' + nextLater[i] + '</option>')
}

  }
}

以及下拉菜单的 html:

<select id= "Somename" name="Somename" id= "EventList" style="width: 267px;">
                  <option value="" selected>Select One:</option>

                </select>

我对 javascript 还很陌生,任何指点都将不胜感激。

最佳答案

您需要更改一些内容。 对于初学者,您需要更改在对象中放置日期的方式,因为您无法将日期与该格式进行比较。因此将它们更改为“10/12/2013”​​(2013 年 10 月 12 日)。

其次,您将 event[i]today 进行比较,但 event[i] 是对象,因此您需要执行 事件[i].eventdate

function addFormField() {
    var event = []
    event[0] = {
        name: "calendarevent1",
        eventdate: "10/12/2013"
    }
    event[1] = {
        name: "calendarevent2",
        eventdate: "11/2/2013"
    }
    event[2] = {
        name: "calendarevent1",
        eventdate: "12/20/2014"
    }

    var today = new Date();

    event.sort();

    var nextLater = null;

    for (var i = 0; i < event.length; i++) {
        if (new Date(event[i].eventdate) > today) {
            //nextLater = event[i];
            //break;
            //for (i = 0; i < nextLater.length; i++) {
                $("#EventList").append('<option>' + event[i].name + '</option>')
            //}

        }
    }
}
addFormField();

你的 fiddle 有一些问题。您没有添加 jQuery。您的选择框有两个ID,删除第一个。我注释掉了一些阻止代码填充选择框的内容。最后,您需要调用该函数,否则它将不会执行任何操作。

http://jsfiddle.net/7G9e5/1/

关于javascript - 对 JavaScript 对象数组中的日期事件进行排序,并与当前日期进行比较以显示在表单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18539988/

相关文章:

javascript - 为什么这有效?清除用作表单的 javascript 对象

javascript - 在Sigma.js中加载JSON文件但无法绑定(bind)overEdge事件

wcf - IE中是否可以进行https到http的跨域请求?

javascript - 更新 iframe、历史记录和 URL。然后使用后退按钮使其工作

javascript - Reactjs onclick 不工作

javascript - 按下特定键后如何捕获打字?

javascript - 迭代 BasicPrimitives OrgChart 项目

javascript - 检查 textarea 是否为空(仅将 'enter' 视为空)?

javascript - 让不同 div 下的多个元素在悬停时消失

jquery - 在核心标记中包含移动特定内容?