選擇5個隨機元素
回答
以下是如何從jQuery選擇中獲得5個隨機元素,無需插件!
randomElements = jQuery("li").get().sort(function(){
return Math.round(Math.random())-0.5
}).slice(0,5)
在這一點上,你有已隨機選擇從所有LIS是jQuery的返回
那麼你可以做任何你與他們喜歡的5個DomElements,
例如改變它們的顏色:
$(randomElements).css("color","red")
或顯示它們的組合的文本內容:
$(randomElements).text()
+1,但我很好奇你爲什麼在文本中拼寫「random」的原因一致,並且在代碼片段中一直不正確:...) – 2009-11-19 17:00:41
一般想法很好,但不應該洗牌這樣的陣列。排序是洗牌數組效率低下的一種方式,而不一致的比較可能會導致問題(甚至可能導致排序無限循環)。最好使用Fisher-Yates shuffle(http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle)。 – 2009-11-19 18:07:11
這不會讓你成爲一個隨機排序的數組。這裏有一篇關於它的文章(它是Objective-C,但不應該)http://cocoawithlove.com/2010/06/sorting-nsmutablearray-with-random.html – 2010-06-14 09:22:43
得到一個隨機數索引,1-5,並取得與該指數上行的孩子。像這樣:
var index = Math.floor(Math.random() * 5) + 1; // nth-child indices start at 1
alert($("ul:nth-child(" + index + ")").text());
爲什麼不做到這一點,似乎很有效:
jQuery('li:random').slice(0, 5);
可能是因爲jQuery沒有':random'選擇器[再]]? – 2012-10-01 19:53:15
jQuery.jQueryRandom = 0;
jQuery.extend(jQuery.expr[":"], {
random: function(a, i, m, r) {
if (i == 0) {
jQuery.jQueryRandom = Math.floor(Math.random() * r.length);
};
return i == jQuery.jQueryRandom;
}
});
使用我創建了一個小腳本用於此目的的。這是通過首先創建jQuery元素數組的隨機混合和切片副本,然後過濾掉兩個數組中不存在的所有元素來完成的。
你可以在http://www.afekenholm.se/jquery-rand閱讀。這裏的腳本:
/**
* jQuery.rand v1.0
*
* Randomly filters any number of elements from a jQuery set.
*
* MIT License: @link http://www.afekenholm.se/license.txt
*
* @author: Alexander Wallin (http://www.afekenholm.se)
* @version: 1.0
* @url: http://www.afekenholm.se/jquery-rand
*/
(function($){
$.fn.rand = function(k){
var b = this,
n = b.size(),
k = k ? parseInt(k) : 1;
// Special cases
if (k > n) return b.pushStack(b);
else if (k == 1) return b.filter(":eq(" + Math.floor(Math.random()*n) + ")");
// Create a randomized copy of the set of elements,
// using Fisher-Yates sorting
r = b.get();
for (var i = 0; i < n - 1; i++) {
var swap = Math.floor(Math.random() * (n - i)) + i;
r[swap] = r.splice(i, 1, r[swap])[0];
}
r = r.slice(0, k);
// Finally, filter jQuery stack
return b.filter(function(i){
return $.inArray(b.get(i), r) > -1;
});
};
})(jQuery);
- 1. 選擇隨機JSON元素
- 2. 選擇一個隨機li元素 - jQuery
- 3. 從數組列表中隨機選擇5個元素而不重複元素
- 4. 選擇隨機XML元素 - 不工作
- 5. 數組操作 - 隨機選擇元素
- 6. 選擇集合中的隨機元素
- 7. 從數組的特定元素中選擇隨機元素
- 8. 如何爲每個類別選擇1個隨機元素
- 9. Ruby從選擇列表中選擇隨機元素與optgroup
- 10. 用jQuery選擇最後5個元素
- 11. 如何隨機選擇一個數組,然後在javaScript中隨機選擇一個元素?
- 12. 如何隨機選擇4或5?
- 13. 如何從數組中選擇一個隨機元素
- 14. 選擇隨機數組元素並放入另一個
- 15. 從緊湊INT選擇一個隨機元素陣列
- 16. 隨機從列表中選擇x個元素
- 17. 如何從coredata中隨機選擇一個元素swift
- 18. 我們如何在數組中選擇一個隨機元素?
- 19. 如何從numpy列表中隨機選擇n個元素?
- 20. 從關聯數組中選擇2個隨機元素
- 21. 在Python中選擇一個隨機列表元素
- 22. 如何在std :: set中選擇一個隨機元素?
- 23. 的元素選擇一個隨機排列配重塊
- 24. 從PHP關聯數組中選擇一個隨機元素
- 25. 從陣列選擇一個隨機元素與jQuery
- 26. 從Selenium Webdriver的列表中選擇一個隨機元素Java
- 27. LINQ group by並從每個組中選擇隨機元素
- 28. 選擇從列表中選擇多個隨機元素在Java中
- 29. 隨機元素
- 30. Android的多選列表中選擇上滾動隨機元素
你可以用一個div周圍的前五個服務器端,然後使用 李#先五:隨機 ? – Kzqai 2009-11-19 15:39:58
不,我可以使用! – AlexC 2009-11-19 15:49:09
我不知道支持「:random」僞選擇器的jQuery,你如何添加這個功能以及它背後的代碼邏輯是什麼? – duckyflip 2009-11-19 16:10:16