2012-04-14 94 views
2

我正在网站上为我的自定义主题在博客网站上工作。我希望有一个评论部分,但我只想每页刷新一次评论。我想知道是否有任何方法用jQuery或JavaScript编写脚本(我不确定哪一个)从数组中挑选一个随机元素(所有评论将有一个单独的元素,每个人有不同的div ID与不同的审查),并显示在一个名为#reviews的div内的元素,并隐藏其他元素?这听起来很混乱,但基本上我需要jQuery或JavaScript来选择评论并将其放入评论部分。如果任何人可以帮助它将不胜感激。Javascript或jQuery页面刷新时显示随机元素

+0

只是想指出,这是不可能使用jQuery没有JavaScript因为jQuery是一个JavaScript库。 – 2012-04-14 17:10:42

+0

谢谢,我是Javascript新手。 – 2012-04-14 17:13:45

回答

1

jQuery is JavaScript。从数组中获得一个随机元素,使用的Math.random():

function getRandomElement(a) { 
    return a[Math.floor(Math.random() * a.length)]; 
} 
+0

我将如何去把所有的元素放在数组中,并在#review中显示随机元素? – 2012-04-14 17:14:09

2

这里有一种方法jsFiddle

<aside id="reviews"> 
    <article class="review"></article> 
    <article class="review"></article> 
    <article class="review"></article> 
</aside>​ 

var $reviews = $('#reviews .review').hide(); 
$reviews.eq(Math.random()*$reviews.length).show();​ 

但除非你打算透露其他在某些时候(滑块,或分页)的评论,你应该真的做这个服务器端。发送人物内容仅仅是为了隐藏它有点浪费。

+0

我不会显示其他评论,只有每页加载一个。 – 2012-04-14 17:19:17

+0

小提琴不起作用,或者您重新创建它不起作用?刷新该链接将随机给你一个'.review'。 – Sinetheta 2012-04-14 17:27:59

0

我会使用knockout.js,它非常适合将JavaScript对象绑定到DOM。你可以填充你的对象和数据的数组 - 将它绑定到div。每次你将一个随机数组绑定到div。数据绑定很简单:

<p>First name: <input data-bind="value: firstName" /></p> 


// This is a simple *viewmodel* - JavaScript that defines the data and behavior of your UI 
function AppViewModel() { 
 this.firstName = "Bert";   
} 

// Activates knockout.js 
ko.applyBindings(new AppViewModel()); 

更多的例子,看到伟大的教程: Knockout.js tutorials