从列表中随机化文本,嵌入代码和URL

时间:2013-05-13 10:31:49

标签: javascript html

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

["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,因此我可以在必要时添加元素。

2 个答案:

答案 0 :(得分: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,[data],[settings])

像这样:DEMO && CODE

答案 1 :(得分:1)

使用简单的javascript,没有任何库 您将需要如下所示的后缀功能 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个元素