标记:
<ul>
<li>Bla</li>
<li>Ble</li>
...
<li>zla</li>
</ul>
让我们假设它是一个非常长的列表,我如何选择x项,但是随机? -edit -
不完全重复,我正在尝试选择x项;
something like:
var i = 0;
$("li:random").each(function(){
i++; if(i==50) break;
})
答案 0 :(得分:3)
以下是如何使用javascript random函数获取此功能的快速示例:
$(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/
答案 1 :(得分: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);
演示:
答案 2 :(得分:0)
完成。 :)
答案 3 :(得分:0)
我认为你可以做这样的事情:
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
}
答案 4 :(得分:0)
这样做: -
randomList = 8;
randomElements = jQuery("li").get().sort(function(){
return Math.round(Math.random())-0.5
}).slice(0,randomList);
$(randomElements).addClass("activeLI");
.activeLI {
color: red;
}
将randomList编号 8 更改为 50 或任何数字。
请参阅 LIVE DEMO
从jQuery: select random elements此答案中复制。