Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 事件处理程序在单击时重复数组_Javascript_Arrays_Dom Events - Fatal编程技术网

Javascript 事件处理程序在单击时重复数组

Javascript 事件处理程序在单击时重复数组,javascript,arrays,dom-events,Javascript,Arrays,Dom Events,我正在创建一个将图像添加到图库的东西,这是用户填写文本字段并单击按钮的结果 添加新图像url时,它会添加到包含每个图像url的数组中 问题在于,每次添加新图像时,添加图像的函数都会创建一个新数组 我试图弄清楚如何将图像添加到返回的第一个数组中,或者如何删除前一个数组 以下是HTML: <header id="header"> <h1 id="title">jgdGalleryMaker</h1> <div

我正在创建一个将图像添加到图库的东西,这是用户填写文本字段并单击按钮的结果

添加新图像url时,它会添加到包含每个图像url的数组中

问题在于,每次添加新图像时,添加图像的函数都会创建一个新数组

我试图弄清楚如何将图像添加到返回的第一个数组中,或者如何删除前一个数组

以下是HTML:

<header id="header">
  <h1 id="title">jgdGalleryMaker</h1>
  <div class="form">
    <label for="image_url">Image URL: </label>
    <input type="text" id="image_url" name="image_url" class="img-input" placeholder="Enter a URL for your gallery image">
    <button type="submit" class="btn img-submit-btn">Add an image to the gallery</button>
    
    <select name="mode" id="gallery-mode">
      <option>View Gallery</option>
      <option>Edit Gallery</option>
    </select>
  </div>
</header>
<div id="gallery-container">
  <div class="jgd-gallery">
    
  </div>
</div>

jgdGalleryMaker
图像URL:
将图像添加到库中
观景廊
编辑库
…和JavaScript(到目前为止):

让imgBtn=document.querySelector(“.img提交btn”);
let gallery=document.querySelector(“.jgd gallery”);
让galImgsArray=[];
gallery.innerHTML=galImgsArray;
函数addimgile(){
让imgURL=document.getElementById(“图像url”).value;
加利姆格萨雷。反移位(imgURL);
控制台日志(galImgsArray);
for(设i=0;i
我也在下面的代码笔中对此进行研究:

在迭代数组之前,只需清除库中的HTML即可。当前解决方案的问题在于,不是每次单击按钮时都添加1个新图像,而是添加数组的整个内容,而不覆盖已有的内容。行
gallery.innerHTML='
在迭代数组并将每个图像添加到库中之前清除先前的内容

function addImgTile() {
  let imgURL = document.getElementById("image_url").value;
  galImgsArray.unshift(imgURL);
  console.log(galImgsArray);
  
  gallery.innerHTML = ''; // This line empty the inner HTML of this element
  for (let i = 0; i < galImgsArray.length; i++) {
    gallery.innerHTML += '<figure class="jgd-gallery__image"><a href="' + galImgsArray[i] + '"><img src="' + galImgsArray[i] + '" /></a></figure>';
  }
}
函数addimgile(){
让imgURL=document.getElementById(“图像url”).value;
加利姆格萨雷。反移位(imgURL);
控制台日志(galImgsArray);
gallery.innerHTML='';//此行清空此元素的内部HTML
for(设i=0;i
这很有效!看起来这会清除上一个数组。谢谢你的解决方案。
function addImgTile() {
  let imgURL = document.getElementById("image_url").value;
  galImgsArray.unshift(imgURL);
  console.log(galImgsArray);
  
  gallery.innerHTML = ''; // This line empty the inner HTML of this element
  for (let i = 0; i < galImgsArray.length; i++) {
    gallery.innerHTML += '<figure class="jgd-gallery__image"><a href="' + galImgsArray[i] + '"><img src="' + galImgsArray[i] + '" /></a></figure>';
  }
}