【问题标题】:how to push from one array of class to another array in javascirpt?如何在javascript中从一个类数组推送到另一个数组?
【发布时间】:2018-08-03 12:04:21
【问题描述】:

我有一组 class="btn" 的图像。单击时,侦听器将 btn.src 替换为图像 arr 中的随机图像。

然后,我需要将随机选择的 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">

【问题讨论】:

标签: javascript arrays


【解决方案1】:

您可以通过使用随机数作为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>

【讨论】:

  • 谢谢,这很有魅力,但我现在可以说 if(newArr[0]==newArr[1]){then do this...} 吗? arr 元素比较是如何工作的?
  • 是的,你可以这样做
猜你喜欢
  • 2020-08-23
  • 1970-01-01
  • 2014-02-04
  • 2021-07-22
  • 2016-11-04
  • 1970-01-01
  • 2015-02-16
  • 2022-12-07
  • 1970-01-01
相关资源
最近更新 更多