как нажать от одного массива класса к другому массиву в javascirpt?

1

У меня есть массив изображений с классом = "btn". При нажатии, слушатель заменяет btn.src изображением случайным образом из изображений arr.

Затем мне нужно иметь случайный-selected-item.src, который хранится в массиве для дальнейших операций. Я смог сделать случайную вставку изображения в класс btn, но не знаю, как каждый раз захватывать случайно выбранный элемент и вставлять их в массив для дальнейшей работы.

Короче, я пытаюсь проверить, имеют ли два выбранных элемента один и тот же src или нет.

var x = document.getElementsByClassName('btn');
for (var i = 0; i < x.length; i++) {
  x[i].addEventListener('click', feedImages);
}


function feedImages(e) {
    var images = ["image/1.png",
                  "image/2.png",
                  "image/3.png",
                  "image/4.png",
                  "image/5.png",
                  "image/6.png"];

    var img = document.createElement("img");
    img.src = images[Math.floor(Math.random()*images.length)];
  document.getElementsByClassName("result").appendChild(img);

};

//как захватить this.img.src и нажимать их в новом массиве каждый раз, поэтому у меня будет что-то вроде

var newArr["selectedImage.png",....];

после того, как пользователь нажал на любой элемент

HTML выглядит просто. При срабатывании SRC случайным образом изменяется на новое изображение.

<img class="btn" src="btn.png">
<img class="btn" src="btn.png">
<img class="btn" src="btn.png">
<img class="btn" src="btn.png">
<img class="btn" src="btn.png">
Теги:
arrays

1 ответ

0
Лучший ответ

Вы можете легко получить, используя случайное число в качестве индекса массива images и используя его для newArr а также в img.src.

var x = document.getElementsByClassName('btn');
 for (var i = 0; i < x.length; i++) {
   x[i].addEventListener('click', feedImages);
 }

var newArr = [];
 function feedImages(e) {
    var images = ["image/1.png",
                  "image/2.png",
                  "image/3.png",
                  "image/4.png",
                  "image/5.png",
                  "image/6.png"];

    var img = document.createElement("img");
    var randomVal = Math.floor(Math.random()*images.length);
    newArr.push(images[randomVal]);
    img.src = images[randomVal];
    document.getElementsByClassName("result")[0].appendChild(img);
    console.log(newArr);
 };
<img class="btn" src="btn.png">
<img class="btn" src="btn.png">
<img class="btn" src="btn.png">
<img class="btn" src="btn.png">
<img class="btn" src="btn.png">
<div class='result'></div>
  • 0
    Спасибо, это сработало как талисман, но могу ли я теперь сказать, если (newArr [0] == newArr [1]) {тогда сделайте это ...}? Как работает сравнение элементов ARR?
  • 0
    Да, вы можете сделать это

Ещё вопросы

Сообщество Overcoder
Наверх
Меню