-1

我有一个包含电影标题、youtube URL(我可以使用它构建嵌入代码)和 IMDB 的 URL 的列表。每次刷新页面时,都必须出现另一个电影标题、Youtube 视频和带有 IMDB 网址的文本。

["Movie A", "URL_to_youtube_movie_A", "URL_to_IMDB_movie_A"],
["Movie B", "URL_to_youtube_movie_B", "URL_to_IMDB_movie_B"],
etc.

我的网站已经有一个刷新按钮:页面重新加载<a href="javascript:history.go(0)"></a>. 如何使 youtube 视频随机显示?我希望输出为 HTML,因此如有必要,我可以在之后添加元素。

4

2 回答 2

1

打乱数组,可以使用下划线,或者编写自定义函数:

list = _.shuffle(list) 

然后输出前 n 部电影。这是最简单的方法,我认为对于您的情况来说已经足够了。

我会做一个对象数组。电影是一个对象,像这样:

var list = [{ title: "Movie A", urlYouTube: "URL_to_youtube_movie", urlImdb: "URL_to_IMDB_movie_A"}, ...]

此外,如果您计划执行更多操作,而不仅仅是显示随机电影,请查看一些 javascript 框架(backbone.js、angular,...)。

我建议您使用模板作为 HTML 输出。Underscore 也有简单的模板实现。_.template(templateString, [数据], [设置])

像这样的东西:DEMO && CODE

于 2013-05-13T10:48:03.107 回答
1

使用没有任何库的简单 javascript 您将需要如下所示的 suffle 函数 DEMO

function arrayShuffle(oldArray) {
    var newArray = oldArray.slice();
    var len = newArray.length;
    var i = len;
     while (i--) {
        var p = parseInt(Math.random()*len);
        var t = newArray[i];
        newArray[i] = newArray[p];
        newArray[p] = t;
    }
    return newArray; 
};

像这样称呼它

  var list = [{ title: "Movie A", urlYouTube: "URL_to_youtube_movie_A", urlImdb: "URL_to_IMDB_movie_A"}, 
                { title: "Movie B", urlYouTube: "URL_to_youtube_movie_B", urlImdb: "URL_to_IMDB_movie_B"}, 
                { title: "Movie C", urlYouTube: "URL_to_youtube_movie_C", urlImdb: "URL_to_IMDB_movie_C"}];

   var Suffledlist = arrayShuffle(list);

然后显示前 2 或 5 个元素

于 2013-05-13T11:13:54.557 回答