Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Взять элемент рандомно (https://javascript.ru/forum/jquery/14394-vzyat-ehlement-randomno.html)

HETmozgov 14.01.2011 12:53

Взять элемент рандомно
 
Здравствуйте гуру jquery

Есть в элементе div картинки img. Для картинок стоит свойство display:none Как с помощью jquery задать свойство display:block для СЛУЧАЙНОЙ картинки из имеющихся?

$j('div img').css('display','block'); - это выборка всех картинок в диве. подскажите как к выборке добавить СЛУЧАЙНОСТЬ

Спасибо :)

Shaci 14.01.2011 13:01

Как-нибудь так
function getRandom(m,n){
return Math.floor(Math.random()*(n-m+1))+m;
}
var n = getRandom(0,$('div img').length - 1);
$($('div img')[n]).css('display', 'block');

Skipp 14.01.2011 13:09

$('div img').eq(Math.floor(Math.random()*$('div img').length)+1).css({display: "block"});

HETmozgov 14.01.2011 13:35

Спасибо откликнувшимся :)

У меня заработал вариант Shaci - отдельное спасибо.

ksa 14.01.2011 13:38

HETmozgov, вот только jquery тут ни при чем... ;)

Matre 14.01.2011 14:08

вориант без говно-кода ;)

var els = $('div img');
els[~~(Math.random() * els.length)].style.display = 'block';

Shaci 14.01.2011 14:36

Цитата:

Сообщение от HETmozgov (Сообщение 87972)
Спасибо откликнувшимся :)

У меня заработал вариант Shaci - отдельное спасибо.

вариант skipp лучше возьми

Matre 14.01.2011 14:46

Цитата:

вариант skipp лучше возьми
тамже выборка 2 раза зачемто идет..
ну т-е $('div img') вызываеться 2 раза,когда хвотило бы 1-ого

рони 14.01.2011 15:58

Цитата:

Сообщение от Matre
els[~~(Math.random() * els.length)].style.display = 'block';

скобки нехватает

Skipp 14.01.2011 15:58

Matre,
Цитата:

вориант без говно-кода
ага и с ошибками =)
Цитата:

тамже выборка 2 раза зачемто идет..
а идёт она 2 раза потому, что не хотел создавать лишние переменные и написать всё в одну строку, не думаю что сильно замедлю систему из-за этого


Часовой пояс GMT +3, время: 18:43.