标记:
<ul>
<li>Bla</li>
<li>Ble</li>
...
<li>zla</li>
</ul>
让我们假设它的列表真的很长,我怎么能随机选择 x 个项目?
-编辑-
不完全重复,我正在尝试选择 x 个项目;
something like:
var i = 0;
$("li:random").each(function(){
i++; if(i==50) break;
})
标记:
<ul>
<li>Bla</li>
<li>Ble</li>
...
<li>zla</li>
</ul>
让我们假设它的列表真的很长,我怎么能随机选择 x 个项目?
-编辑-
不完全重复,我正在尝试选择 x 个项目;
something like:
var i = 0;
$("li:random").each(function(){
i++; if(i==50) break;
})
以下是如何使用 javascript随机函数获取此信息的快速示例:
$(function() {
var randomItemsNum = 3;
var totalItems = $('#mylist > li').length;
for (var index = 0; index < randomItemsNum; index++) {
var randomIndex = Math.floor((Math.random() * totalItems) + 1);
var item = $('#mylist > li:nth-child(' + randomIndex + ')');
if (item.hasClass('selected')) {
index--;
continue;
}
else {
item.addClass('selected');
}
}
});
它将选定的 CSS 类添加到 3 个随机列表项。在此处查看工作演示 - http://jsfiddle.net/Pharaon/PPW9J/1/
function selectRandomFromList($list, num){
var $children = $list.children(),
len = $children.length,
a = [],
o = {},
r,
$items = $([]);
if (!len) { return $items; }
if (num >= len) { return $children; }
// Build an array of unique indices
while (a.length < num) {
r = Math.floor(Math.random() * len);
if (!o.hasOwnProperty(r)) {
o[r] = 1;
a.push(r);
}
}
// grab the items
while (num--) {
$items = $items.add($children.eq(a.pop()));
}
return $items;
}
示例用法:
selectRandomFromList($('ul'), 3);
演示:
完毕。:)
我认为你可以摆脱做这样的事情:
var list_length = $("ul li").length;
var x; //Assign amount of items
for(var i = 0; i <= x; i++) {
Math.floor((Math.random()*list_length));
//Select stuff in here
}