如何根据当前日期重新安排网页上的列表顺序
How do I rearrange the order of a list on a web page based on the current day?
我正在为一家餐厅做网站,每日特色菜列表占用了太多的垂直空间。每个<li>
由星期几、特殊名称和描述组成。
我想用jScrollPane封装列表。
但是,这需要用户滚动屏幕来查找当天的特价节目。
所以,我想让当天的特价总是出现在顶部,其他特价在下面列出。例如,如果今天是星期三,列表将按如下顺序排列:
- 周三周四周五周六周日周一周二
特色菜在可预见的将来不会改变。目前我有他们在一个无序列表(<ul>
)。实现这一目标的最佳方法是什么?
我能想到的最简单的方法就是在每日特色菜列表上方复制今天的特色菜。
例如,您可以在每日特色菜上面创建一个新的空div, id为todaysSpecial。然后,您可以将li中的内容复制到该容器中。
$('#todaysSpecial').
html($($('#specials>li')[new Date().getDay()]).html())
新的Date(). getday()函数将返回0到6之间的整数,因此需要列出周日到周六的每日特价。稍加模数运算就可以改变列表的起始日期
好吧,如果你有一个像下面这样的数组:
$specials = array(
'Monday' => array(...),
'Tuesday' => array(...),
'Wednesday' => array(...),
...
'Sunday' => array(...)
);
您可以利用date()
和N
格式化器根据日期偏移数组。然后像往常一样转储数组。例如http://www.ideone.com/Pb0ys
$today = (int)date('N') - 1; // 1=Monday, ..., 7=Sunday
$specials = array_merge(
array_slice($specials,$today), // start with today+rest of week
array_slice($specials,0,$today) // move specials before today to the end
);
我会根据日期重新排列列表,应该不难。
<h1>Specials</h1><br />
<ul id="specials">
<li id="day0">Sunday : Chinese</li>
<li id="day1">Monday : Chicken</li>
<li id="day2">Tuesday : Beef</li>
<li id="day3">Wednesday : Cod</li>
<li id="day4">Thursday : Salmon</li>
<li id="day5">Friday : Taco</li>
<li id="day6">Saturday : Pizza</li>
</ul>
重新排列:
var a = new Date().getDay();
for (var i=0; i<=6; i++) {
if (a==7) {a=0}
$("#specials").append( $("#day"+a) );
a++;
}
这里有一个小提琴来展示它是如何工作的:http://jsfiddle.net/twU3m/
相关文章:
- 如何随机显示列表项的顺序
- 对Soundcloud自定义播放器播放列表的顺序进行排序
- 如何在角度js的自动完成下拉列表中对项目列表(按字母顺序)进行排序
- 如何根据 js 中每个单词的第 n 个字母按字母顺序排列列表
- 按调用顺序返回由Ajax/HTTP生成的数据列表
- 插入按字母顺序、javascript或jquery排序的新列表
- Mvc4将Jquery可排序列表项的顺序保持到控制器
- 按字母顺序排列列表
- 如何根据GeoJSON属性中的ID号设置下拉列表项的顺序
- 如何跟踪有序列表中的顺序,该列表具有一个循环列表项,提供不同的参数
- 链接的自定义顺序列表
- 从下拉列表中的数组中选取某个项目,然后将其显示为第一项并按字母顺序显示
- 当列表长度未知时按顺序调用 http.get
- 按数字顺序排列列表
- 根据jQuery中的列表顺序更改输入值
- 正在按给定的id序列设置列表顺序
- 如何根据当前日期重新安排网页上的列表顺序
- 使用Jquery ui按钮单击后保存新的ul列表顺序
- 使用jquery更新列表顺序
- 如何用jQuery获得可排序的列表顺序