我正在为我的博客网站上的自定义主题制作一个网站。我想要有一个评论部分,但每次刷新页面只想显示一个评论。我想知道是否有任何方法可以使用jQuery或javascript(我不确定哪个)编写脚本来从数组中选择一个随机元素(所有评论都将有一个单独的元素,每个人都有不同的div ID和不同的评论),并将该元素显示在名为#reviews的div中,并隐藏其他元素?听起来很复杂,但基本上我需要使用jQuery或javascript选择一个评论并将其放入评论部分。如果有人能帮忙,将不胜感激。
这是一个使用 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();
但是,除非您计划在某个时候(滑块或分页)公开其他评论,否则您应该真正做到这一点。仅仅为了隐藏内容而发送给用户是有些浪费的。
jQuery 就是 JavaScript。要从数组中获取一个随机元素,可以使用 Math.random():
function getRandomElement(a) {
return a[Math.floor(Math.random() * a.length)];
}
我会使用 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 教程