jQuery - 根据时间删除列表项

时间:2009-12-01 01:03:30

标签: javascript jquery

我目前有一个包含无序列表的页面。该列表最初通过查询我的数据库来填充,每个列表项都有时间戳和文本。使用javascript和AJAX,如果新数据进入,此页面每10秒动态更新无序列表。

如果项目超过24小时,从这个无序列表中删除列表项的最简单,最有效的方法是什么?

我倾向于做以下事情:

  1. 在js文件中,将无序列表中的所有列表项加载到数组
  2. 在获取数据的js调用期间,如果数据返回,则将这些项添加到数组
  3. 每次调用getData()函数时,还要调用removeData()函数,该函数会删除超过24小时的所有项目。
  4. 此外,我在尝试找出将列表项添加到javascript数组的正确方法时遇到了问题。这是我一直在尝试将所有列表项添加到数组中的代码:

      var list = new Array();
      $(".listname").each(function (i){
        list.push($(this));
      });
    

    从数组中删除列表项,我希望使用:

    list.pop();
    

2 个答案:

答案 0 :(得分:1)

为什么不按日期排序数组(最早的数据),然后使用list.shift()?这将删除数组中的第一项,如here所述。

答案 1 :(得分:0)

运行getData时显示元素的方法似乎很合理。您应该使用push追加到数组的末尾,但是pop只是从数组的末尾拉出元素,这可能不是正确的顺序。 Javascript数组就像堆栈而不是队列。您可能希望按照建议的here

将删除添加到javascript数组原型中