マークアップ:
<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
}
このようにしてください: -
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または任意の数値に変更します。
ライブデモを参照
jQueryからコピー:この回答のランダムな要素を選択します。