随机排序<li>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>抽奖工具网页版</title>
<script type="text/javascript" src="Files/jquery-1.4.1.min.js"></script>
<script type="text/javascript">
$(function () {
$("ul li").each(function () {
if (parseInt(Math.random() * 2) == 0) {
$(this).prependTo($(this).parent());
}
});
});
</script>
</head>
<body>
<div class="ispost">
<ul>
<li><div class="fanpai"><h4>111</h4></div></li>
<li><div class="fanpai"><h4>222</h4></div></li>
<li><div class="fanpai"><h4>333</h4></div></li>
<li><div class="fanpai"><h4>444</h4></div></li>
<li><div class="fanpai"><h4>555</h4></div></li>
<li><div class="fanpai"><h4>666</h4></div></li>
<li><div class="fanpai"><h4>777</h4></div></li>
<li><div class="fanpai"><h4>888</h4></div></li>
<li><div class="fanpai"><h4>888</h4></div></li>
<li><div class="fanpai"><h4>888</h4></div></li>
<li><div class="fanpai"><h4>999</h4></div></li>
</ul>
</div>
</body>
</html>
发现的问题
有时候如果<li>
太多的话就会出现:最后一个数值,在第一个或最后一个;
解决方案
$(function () {
var arr = $('ul li').toArray();
var len = arr.length;
var rand = parseInt(Math.random()*(len));
$('ul li').each(function(i){
$('ul').append($('ul li').eq(rand));
rand = parseInt(Math.random()*(len));
});
// $("ul li").each(function () {
// if (parseInt(Math.random() * 2) == 0) {
// $(this).prependTo($(this).parent());
// }
// });
});
第一种方法比较容易,且写法简单。
第二种的话可以是按照个数进行随机排序,也不是太难,如果按照第二种方法是比较严谨一些,真正意义上的随机。
如果发现问题可以私聊我,谢谢;