2013-05-13 53 views
-1

我有一個列表,包含電影名稱,YouTube網址(可以用來構建嵌入代碼)和URL到IMDB。在每次刷新頁面時,都會出現另一個電影標題,Youtube視頻和帶有IMDB URL的文本。從列表中隨機化文本,嵌入代碼和URL's

["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,所以如果需要,我可以在之後添加元素。

+0

一個更簡單的方法來重新加載頁面將是'location.reload();'。 – starbeamrainbowlabs 2013-05-13 10:53:58

回答

1

洗牌數組,你可以使用下劃線,或編寫自定義功能:

list = _.shuffle(list) 

然後輸出前n電影。這是最簡單的方法,我認爲對你的情況來說足夠好。我想做一個對象數組。電影是一個對象,像這樣:

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

此外,如果你打算做更多的操作比只顯示隨機的電影看一些JavaScript框架(Backbone.js的,棱角分明,...)。

我建議你使用HTML輸出模板。下劃線也有簡單的模板實現。 _.template(templateString,[數據],[設置])

事情是這樣的:DEMO && CODE

+1

太棒了,看起來像一個優雅的解決方案。 – 2013-05-13 12:09:48

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; 
}; 

suffle功能稱之爲

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個元素