Получить случайный блок - PullRequest
       0

Получить случайный блок

2 голосов
/ 06 января 2011

У меня есть блоки с идентификаторами от block1 до block10.

Как это:

<div id="block1"></div>
<div id="block2"></div>
<div id="block3"></div>
<div id="block4"></div>
<div id="block5"></div>
<div id="block6"></div>
<div id="block7"></div>
<div id="block8"></div>
<div id="block9"></div>
<div id="block10"></div>

Как получить случайный блок с диапазоном идентификаторов от 1 до 10?

Ответы [ 4 ]

7 голосов
/ 06 января 2011
var randomnumber=Math.floor(Math.random()*10) + 1;
var obj = document.getElementById('block' + randomnumber);

JQuery:

var randomnumber=Math.floor(Math.random()*10) + 1;
var obj = $('#block' + randomnumber);
2 голосов
/ 06 января 2011

Первые два опубликованных ответа не совсем верны.Они будут извлекать числа от 0 до 10, поскольку они используют слово, а не от 1 до 10.

Расчет случайных чисел работает так:

  1. Math.random возвращает десятичное значение в диапазоне от 0до 1, НО НИКОГДА 0 НОР 1.
  2. Умножение этого десятичного значения на 10 изменяет его в диапазоне от 0,000001 до 9,99999.ответ теперь находится в диапазоне от 0 до 9.
  3. Добавьте 1 к числу, чтобы сместить его диапазон от 1 до 10.

Полный код такой:

var randNumber = 1 + Math.floor(Math.random() * 10);
var randId = 'block' + randNumber;

var obj = document.GetElementById(randId);

Теперь obj содержит объект div, а randId - это идентификатор случайного div.Или вы могли бы использовать jQuery в последней строке:

var obj = $('#' + randId);
2 голосов
/ 06 января 2011

Вы должны сгенерировать случайное число, используя javascript, а затем просто использовать селектор jQuery, например

var randomNumber=Math.floor(Math.random()*11)
var chosenBlock = $('#block'+randomNumber);

, где 11 диктует, что случайное число упадет между 0-10.Чтобы увеличить диапазон, скажем, до 100, просто измените 11 на 101.

РЕДАКТИРОВАТЬ: Не забудьте пронумеровать ваши блоки, начиная с 0.

2 голосов
/ 06 января 2011

Сначала получите случайное число от 1 до 10

var num = Math.floor (Math.random () * 11);

Тогда получите элемент с id + num.

var element = document.getElementById ('block' + num);

...