JavaScript或jQuery显示随机元素在页面刷新时。

3
我正在为我的博客网站上的自定义主题制作一个网站。我想要有一个评论部分,但每次刷新页面只想显示一个评论。我想知道是否有任何方法可以使用jQuery或javascript(我不确定哪个)编写脚本来从数组中选择一个随机元素(所有评论都将有一个单独的元素,每个人都有不同的div ID和不同的评论),并将该元素显示在名为#reviews的div中,并隐藏其他元素?听起来很复杂,但基本上我需要使用jQuery或javascript选择一个评论并将其放入评论部分。如果有人能帮忙,将不胜感激。

只是想指出,没有Javascript就不可能使用jQuery,因为jQuery本身就是一个Javascript库。 - Simon Forsberg
3个回答

5

这是一个使用 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();​

但是,除非您计划在某个时候(滑块或分页)公开其他评论,否则您应该真正做到这一点。仅仅为了隐藏内容而发送给用户是有些浪费的。


小提琴不起作用,还是你重新创建它没有成功?刷新该链接将随机给出一个“.review”。 - Sinetheta
谢谢,非常简单但功能强大的解决方案。 - tonydeleon

1

jQuery 就是 JavaScript。要从数组中获取一个随机元素,可以使用 Math.random():

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

我该如何将所有元素放入数组中,并在 #review 中显示随机元素? - James Charless Dickinson

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 教程


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接