-1

i am trying to remove image by clicking on it after i create 'img' element using createElement but i cant remove the image , whats wrong with the removes function in my code ? here is my code :

function generateCat(){
  var image = document.createElement('img')
  var div = document.getElementById('flex-cat-gen');
  image.src= ('image.jpg');
  div.appendChild(image);
}

document.getElementsByTagName('img').onclick =  function removes() {
  document.getElementsByTagName('img').remove();
}
Mamun
  • 66,969
  • 9
  • 47
  • 59
amir
  • 33
  • 6
  • `getElementsByTagName` returns a `HTMLCollection`, not a single element. You'll have to loop over each element and bind an event listener to it. And in the event handler remove every single image – Emiel Zuurbier May 08 '20 at 13:27

1 Answers1

0

You should try like this.You have to add an Eventlistener for click event.Also see document.getElementsByTagName(),

Method returns a live HTMLCollection of elements with the given tag name

function generateCat() {
  var image = document.createElement('img')
  var div = document.getElementById('flex-cat-gen');
  image.src = ('https://cdn.nikkiflower.com/assets/uploads/product_image/114/small/1575008384_0.jpg');
  div.appendChild(image);


  let tags = document.getElementsByTagName('img');
  for (let i = 0; i < tags.length; i++) {
    tags[i].addEventListener("click", function() {

      this.remove()

    })

  }
}
<div id="flex-cat-gen">
</div>

<button class="btn btn-warning" onclick="generateCat()">Generat Cat</button>
Shubham Dixit
  • 9,242
  • 4
  • 27
  • 46