2013-08-27 67 views
10

Tôi muốn hiển thị ngẫu nhiên một lớp div bằng cách sử dụng JQuery. Mã này là một cái gì đó như:hiển thị ngẫu nhiên một lớp div bằng cách sử dụng JQuery

<div class="item">One</div> 
<div class="item">Two</div> 
<div class="item">Three</div> 
<div class="item">Four</div> 

Vì vậy, nếu phương pháp ngẫu nhiên (kết quả ngẫu nhiên là trong vòng 1 đến 4) cung cấp cho 3 như kết quả, nó cho thấy:

<div class="item">Three</div> 

Phần còn lại được ẩn. Tất nhiên, mã có thể được thay đổi để làm cho nó hoạt động. Cảm ơn.

Trả lời

2
var number = Math.floor(Math.random()*3) 
var div = $(".item")[number]; 
div.show(); 
2

Something như thế:

$('.item').hide().eq(Math.floor(Math.random()*4)).show() 

Fiddle: http://jsfiddle.net/PPXmE/

+1

Fiddle của bạn không hiển thị câu trả lời cho câu hỏi này. – L84

23

tiên chúng ta có được một int ngẫu nhiên, từ số không đến số lượng các mặt hàng (trừ 1). Sau đó, chúng tôi ẩn tất cả các phần tử khác và chỉ hiển thị các phần tử được chọn ngẫu nhiên.

var random = Math.floor(Math.random() * jQuery('.item').length); 
jQuery('.item').hide().eq(random).show(); 

Demo

+0

công việc tuyệt vời @edgoo –

2

dụ làm việc: jsFiddle

js

window.onload=function() { 
    var E = document.getElementsByClassName("item"); 
    var m = E.length; 
    var n = parseInt(Math.random()*m); 
    for (var i=m-1;i>=0;i--) { 
     var e = E[i]; 
     e.style.display='none'; 
    } 
    E[n].style.display=''; 
} 

js.minified

window.onload=function(){var E=document.getElementsByClassName("item");var m=E.length;var n=parseInt(Math.random()*m);for(var i=m-1;i>=0;i--){var e=E[i];e.style.display='none';}E[n].style.display='';} 

html

<div class="item">One</div> 
<div class="item">Two</div> 
<div class="item">Three</div> 
<div class="item">Four</div> 
<div class="item">Five</div> 
<div class="item">Six</div> 
<!-- Add as many as you want! //-->