每个给定周期自动更改一次div及其内容

时间:2011-02-01 22:38:22

标签: jquery html

是否可以使用div及其内容(图像类和相关文本)每周自动更改为不同的预配置内容?你可以使用jquery来做这件事吗?

注意:谢谢亲爱的聪明的嘲笑: - )

澄清。我有一个网页,上面有一位特色艺术家的照片和他/她的生物。我想每周都有一位不同的艺术家,他们有自己的生物和形象。我可以手动完成,但如果艺术家形象和生物每周在不同艺术家之间骑自行车,则会更喜欢它。内容是div,我想知道我是否可以使用jquery或其他一些过程来循环不同艺术家的内容?

3 个答案:

答案 0 :(得分:3)

你可能想要这样的东西。假设您想在每周之间轮换三个div:

<div class="weekly week-1"> Buy our things! </div>
<div class="weekly week-2"> Save 20% today! </div>
<div class="weekly week-3"> Free kitten with every widget! </div>

您可以根据周显示和隐藏div:

// Get the number of the week since the epoch.
var week = Math.floor(new Date().getTime() / (1000 * 60 * 60 * 24 * 7));

// Show one div per week.
$('.weekly').hide();
$('.weekly .week-' + (week % 3 + 1)).show();

请注意,纪元(1969年12月31日)是一周的中间,所以这是你的横幅改变的时候。

答案 1 :(得分:1)

服务器端解决方案可能更好。但是,您可以使用以下内容快速破解:

var now = new Date();

Date.prototype.getDOY = function() {
var onejan = new Date(this.getFullYear(),0,1);
return Math.ceil((this - onejan) / 86400000);
}

var day = now.getDOY();

var week = Math.floor(day / 7);

switch(week)
{
case 1:
  // First Week
  break;
case 2:
  // Second week
  break;
}

答案 2 :(得分:0)

可能 不太可能肯定是


为了避免下载各种不必要的数据,只需在服务器上为每位艺术家创建一个不同的HTML文件。每个文件应仅包含 您想要的内容。没有<html> <head> <body>个标签。

一致地标记文件,以数字结尾,例如:artist_0.htmlartist_1.html等。

然后旋转它们,执行以下操作:

var today = new Date();
var beginning = new Date(today.getFullYear(),0,1);
var dayOfYear = Math.floor((((today - beginning) / 60000 ) / 60 ) / 24);
var weekNumber = Math.floor(dayOfYear / 7);

var numberOfArtists = 7;  // Total quantity of artists (indexed 0 - 6)

var artistURL = "/path/to/artist_" + (weekNumber % 7) + ".html"; // Build the URL

$(function() {
    $('#my_highlighted_artist').load(artistURL); // Load the proper artist
});                                              //    on page load

你有多少艺术家并不重要。它将始终循环到下一个循环(虽然循环将在1月1日的第一个循环开始。