有沒有重新排列div命令的方法? 更精確如何從如何在每次重新加載時重新排列div訂單?
<div id="1"></div>
<div id="2"></div>
<div id="3"></div>
<div id="4"></div>
這
<div id="3"></div>
<div id="1"></div>
<div id="4"></div>
<div id="2"></div>
或者以每重載任何其他命令獲得。
有沒有重新排列div命令的方法? 更精確如何從如何在每次重新加載時重新排列div訂單?
<div id="1"></div>
<div id="2"></div>
<div id="3"></div>
<div id="4"></div>
這
<div id="3"></div>
<div id="1"></div>
<div id="4"></div>
<div id="2"></div>
或者以每重載任何其他命令獲得。
簡單這樣
$("#parent").html($("#parent").children().sort(function() { return 0.5 - Math.random() }));
看到這個:http://jsfiddle.net/KfY4u/
$("div.container div").sort(function(){
return Math.random()*10 > 5 ? 1 : -1;
}).each(function(){
var $t = $(this);
$t.appendTo($t.parent());
});
這適用於任意數量的div
標籤
像這樣的事情?
var ids = [], max = 4, i = 0, rand = 0;
while(i < max){
do{
rand = Math.floor(Math.random() * max);
} while(ids.indexOf(rand) < 0)
ids.push(rand);
i++;
}
我將假設你有順序的陣列,像這樣: 變種順序= [3,1,4,2]。 現在,我會假設你有你的div一個div容器,就像這樣:
<div id="container">
<div id="1"></div>
<div id="2"></div>
<div id="3"></div>
<div id="4"></div>
</div>
你應該如何繼續是這樣的:經過從年底開始的數組,並在前面加上每格對應id到'container'div:
$(document).ready(function() {
var order = [3, 1, 4, 2];
for(var i=order.length-1; i>=0; i--) {
$('#container').prepend($('#'+order[i]));
}
});
Enjoy!
編輯:我對這個問題的理解是如何重新安排div,而不是如何生成一個新的隨機順序!對不起,如果我錯過了這一點,但這是你問你的問題。
的其他片段:
var $divs = $('#container div');
for(var j, x, i = $divs.length; i; j = parseInt(Math.random() * i), x = $divs[--i], $divs[i] = $divs[j], $divs[j] = x);
$('body').append($divs);
顯示你已經盡力了,並給予更多的細節(隨機,設置特定的新訂單等)。我將心思念給那些有能力的人的。 –
如果我使用math.random()是不是有機會有兩個具有相同ID的div例如? –
對兩個元素使用相同的ID是不正確的。 –