2013-10-16 37 views
0

以前我已經使用Math.random()將一個隨機圖像加載到div中。我想再次使用它,但我不是jQuery專家,我不知道這是否可能。我有一些絕對定位的div ID,我想隨機選擇一些類(.content)並加載到這些ID中。所以:插入隨機div類到id

<div id="veh1" class="abs"></div> 
<div id="veh2" class="abs"></div> 

.abs { position: absolute } 

<div class="content">ONE</div> 
<div class="content">TWO</div> 
<div class="content">THREE</div> 
<div class="content">FOUR</div> 

.content { display: none } 

要與

<div id="veh1" class="abs"><div class="content" style="display: block">TWO</div></div> 
<div id="veh2" class="abs"><div class="content" style="display: block">FOUR</div></div> 

結束了,我知道我可以做這樣的事情有關的Math.random()和.show()腳本。

<div id="veh1" class="abs"> 
<div class="content" style="display:block">ONE</div> 
<div class="content" style="display:none">TWO</div> 
<div class="content" style="display:none">THREE</div> 
<div class="content" style="display:none">FOUR</div> 
</div> 

我能做到這一點的各種預定內容中的每個ID和負載,但它那種蔑視它是完全隨機的點,我懷疑這將是這樣做的最佳方式。我曾四處搜尋,但沒有找到如何完成的例子。

回答

0

這應該讓你開始:

var count = $('.content').length, 
    rnd = Math.round(Math.random()*count); 
    $randomDiv = $('.content').eq(rnd); 

$randomDiv.css({ color: 'red' }); //do stuff with the randomly selected div 

這將導致這樣的事情:

$('div.abs').each(function(i, el){ 
    //do the random stuff in here 
    $(el).append($randomDiv); 
}); 

不要忘記檢查,如果一定.content DIV已經被插入(我只是假設你不想那樣)。

http://jsfiddle.net/PnRYc/

+0

謝謝你的小提琴。但我想嘗試實現一個隨機選擇的內容,並將其加載到#veh1,#veh2,#veh3隨機選擇的div ID中(也可能有.abs的類)等等。可能有10個div ID和50個內容,其中10個插入到ID中,其餘隱藏。這似乎有意義嗎?目前我只能考慮使用你的或Patryk的答案來隨機加載特定ID中的某些內容。 – kurts

+0

好吧,很難說它是否合理,因爲我不知道你想達到什麼目的。但我已經向你展示了一些簡單的隨機化。那麼如果你想移動/隱藏/顯示/克隆這些元素,則由你決定。我想你應該能夠弄清楚。如果沒有,讓我知道 – Johan

+0

當然,我會用這個方法來管理,比原來的方法更簡單。 Patryk的代碼也有效,但我無法回答這兩個甚至是最後的投票。所以我會把這個標記爲已回答。 – kurts

0

我覺得這是更好的

$('.abs').each(function() { 
    var el = $('div.content').eq(Math.round(Math.random() * $('div.content').length)) 
    $(this).append(el) 
    el.remove(); 
}); 
+0

這是map'也不怎麼'intented使用... – Johan

+1

@Johan以及現在這個工作:) – Patryk

+0

乾杯的建議,這並不如預期。有時在頁面刷新時,它會返回一個空格。在這種情況下,似乎更好的做法是var rand = Math.floor(Math.random()* $('。selector')。length); $( '選擇')當量(RAND).show();與CSS作爲。選擇器顯示:無 – kurts