2010-06-18 72 views
4

我正在處理客戶端的基於HTML的網站,並且需要在刷新頁面時隨機訂購一組Div。我通常會通過PHP和數據庫調用來處理這個問題,但它是一個靜態網站。用jquery更改DIV訂單

所以,我想知道是否有人知道如何隨機顯示一組使用jQuery的div的集合?

下面是一個例子:

<div class="myItems"> 
    <div class="item">1</div> 
    <div class="item">2</div> 
    <div class="item">3</div> 
</div> 

和刷新,它可能會更改爲:

<div class="myItems"> 
    <div class="item">2</div> 
    <div class="item">3</div> 
    <div class="item">1</div> 
</div> 

任何人都知道該怎麼做?

+0

[使用jQuery隨機化一系列div元素](http://stackoverflow.com/questions/1533910/randomize-a-sequence-of-div-elements-with-jquery) – 2010-06-18 17:11:23

回答

1

其實這是很簡單的:

$(".myItems").html($(".myItems .item").sort(function(){ 
    return Math.random()-0.5; 
})); 

這就是它! 享受。

8

此預訂購去做

function reorder() { 
      var grp = $(".myItems").children(); 
      var cnt = grp.length; 

      var temp,x; 
      for (var i = 0; i < cnt; i++) { 
       temp = grp[i]; 
      x = Math.floor(Math.random() * cnt); 
      grp[i] = grp[x]; 
      grp[x] = temp; 
     } 
     $(grp).remove(); 
     $(".myItems").append($(grp)); 
     } 
+0

+1:這就是很好地完成:) – Sarfraz 2010-06-18 17:34:15

+0

這工作很好!謝謝約瑟夫! – Troy 2010-06-18 21:51:11

0

另一個簡單的辦法是... 1.創建一個數組 2.生成隨機數並檢查它是否是奇數還是偶數 3.如果奇,加你的div到頂部(shift方法)。如果偶數,則將您的div添加到底部(推送方法)。 4.這樣你就可以將你的div隨機排列在數組中。 5.現在簡單地加入數組並將其附加到您的頁面。

var divArray = []; 

for(var i=0; i<divs.length; i++){ 
    //generate random number 
    if(rand_num == odd) 
    divArray.push(div[i]); 
    else 
    divArray.shift(div[i]); 
} 

$(myElem).html(divArray.join(""));