Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.12.2015, 17:48
Аспирант
Отправить личное сообщение для orionpro Посмотреть профиль Найти все сообщения от orionpro
 
Регистрация: 23.12.2015
Сообщений: 39

хочу чтобы находил случайный img, но не работает код
Есть div с классом block_img в нём картинки img. (они скрыты) Я их нахожу и вставляю в другой div... но не могу вывести именно случайную картинку, ибо arrImg[rand] как описано во всех примерах не хочет взять эту случайную картинку.
var block_img = document.querySelectorAll('.block_img img');
    var block_image_show_one = document.querySelector('.block_image_show_one');

    for (var i = 0; i < block_img.length; i++) {

        var arrImg = block_img[i];
        var rand = Math.floor(Math.random() * arrImg.length);



        block_image_show_one.appendChild(arrImg);
    }

В итоге я их нахожу и вставляю в нужный мне div , но только все картинки. А надо только одну случайную... В чём проблема? Спасибо за помощь.
Ответить с цитированием
  #2 (permalink)  
Старый 23.12.2015, 17:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от orionpro
А надо только одну случайную... В чём проблема?
В цикле.
Ответить с цитированием
  #3 (permalink)  
Старый 23.12.2015, 17:57
Аспирант
Отправить личное сообщение для orionpro Посмотреть профиль Найти все сообщения от orionpro
 
Регистрация: 23.12.2015
Сообщений: 39

Сообщение от laimas Посмотреть сообщение
В цикле.
Не могли бы вы, милейший, более подробно объяснить. Я нахожу ведь все картинки... почему после прохождения цикла, успешно найдя все картинки, я не могу вычленить случайную картинку (.
Ответить с цитированием
  #4 (permalink)  
Старый 23.12.2015, 18:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от orionpro
Я нахожу ведь все картинки... почему после прохождения цикла, успешно найдя все картинки, я не могу вычленить случайную картинку
А зачем циклом находить картинки, если вам требуется только одна из них? Одна, значит зная длину массива нужно сформировать число из диапазона индексов массива изображений - от 0 до длина массива - 1.
Сформировали, получаете по этому индексу изображение (путь/имя), отображаете.
Ответить с цитированием
  #5 (permalink)  
Старый 23.12.2015, 18:13
Аспирант
Отправить личное сообщение для orionpro Посмотреть профиль Найти все сообщения от orionpro
 
Регистрация: 23.12.2015
Сообщений: 39

Сообщение от laimas Посмотреть сообщение
А зачем циклом находить картинки, если вам требуется только одна из них? Одна, значит зная длину массива нужно сформировать число из диапазона индексов массива изображений - от 0 до длина массива - 1.
Сформировали, получаете по этому индексу изображение (путь/имя), отображаете.
Так мысль же в том, чтобы случайно взять картинку из массива картинок. А циклом прохожу, чтобы проверить сколько картинок. Вдруг картинок станет больше или меньше? Просто идея в случайности. Из имеющихся картинок я буду выбирать не в одно место, а в три разных блока. Но это потом, в начале хотя бы в один, чтобы работало...

Последний раз редактировалось orionpro, 23.12.2015 в 18:17.
Ответить с цитированием
  #6 (permalink)  
Старый 23.12.2015, 18:21
Аспирант
Отправить личное сообщение для orionpro Посмотреть профиль Найти все сообщения от orionpro
 
Регистрация: 23.12.2015
Сообщений: 39

Вот пример на learn.javascript.ru
var arr = ["Яблоко", "Апельсин", "Груша", "Лимон"];

var rand = Math.floor(Math.random() * arr.length);

alert( arr[rand] );

Он же работает. Случайным образом получает значение массива ...
Ответить с цитированием
  #7 (permalink)  
Старый 23.12.2015, 18:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

orionpro,
arrImg у вас одна картинка какую длину вы хотите получить у одной картинки в arrImg.length?
Ответить с цитированием
  #8 (permalink)  
Старый 23.12.2015, 18:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

orionpro,
var block_img = document.querySelectorAll('.block_img img');
var block_image_show_one = document.querySelector('.block_image_show_one');
var rand = Math.floor(Math.random() * block_img.length);
var arrImg = block_img[rand];
block_image_show_one.appendChild(arrImg);
Ответить с цитированием
  #9 (permalink)  
Старый 23.12.2015, 18:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от orionpro
Вот пример на learn.javascript.ru
Сообщение от orionpro
Он же работает.

Ну так как он работает?
Ответить с цитированием
  #10 (permalink)  
Старый 23.12.2015, 18:52
Аспирант
Отправить личное сообщение для orionpro Посмотреть профиль Найти все сообщения от orionpro
 
Регистрация: 23.12.2015
Сообщений: 39

Сообщение от рони Посмотреть сообщение
orionpro,
var block_img = document.querySelectorAll('.block_img img');
var block_image_show_one = document.querySelector('.block_image_show_one');
var rand = Math.floor(Math.random() * block_img.length);
var arrImg = block_img[rand];
block_image_show_one.appendChild(arrImg);
Получается, что этом коде
var block_img = document.querySelectorAll('.block_img img');

я уже выбираю все картинки? Просто, как-то сталкивался с тем, что только циклом можно было успешно сделать.
var elem = document.querySelectorAll(".historyList");
        // цикл проверяет все элементы с классом historyList 
        for (var i = 0; i < elem.length; i++) {

            elem[i].remove(); // и потом удаляет их

        }

Если убираем цикл и пытаемся удалить elem.remove(); то ничего не работает.(elem.remove is not a function). Наверное из-за этого и решил применить такое и на img. Большое спасибо, Ваш код работает, как надо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтобы код не исполнялся когда ненадо и вставить его туда? Nerow Общие вопросы Javascript 12 09.01.2015 23:17
достал уже IE (не работает код) Weise Internet Explorer 11 29.03.2010 13:46
Не работает код из внешнего файла в IE6 Petka jQuery 2 03.03.2010 16:09
Почему не работает код? JSprog Общие вопросы Javascript 4 16.08.2009 14:39
Код не работает в седьмом Эксплорере... vol4ara Общие вопросы Javascript 0 14.07.2008 18:53