In the snippet below, I'm generating random parts of a URL and that spits out an image from placeimg.com. However, I'm trying to re-run the functions that generate the different parts of the URL, so I can generate a new image on click.
I'm using this:
getNewImage.addEventListener('click', function() {
getRandomCat();
getImageId();
});
...but it's not reloading the image. Is the reload() method better here? I don't want to reload the page, I only wan to reload the image.
const imageContainer = document.querySelector('.random-image');
//categories
const categories = ['animals', 'arch', 'nature', 'people', 'tech'];
const getRandomCat = function() {
return categories[Math.floor(Math.random() * categories.length)];
}
//image id
function getImageId() {
return Math.floor(Math.random() * 1000000000000) + 1;
}
const genImg = document.createElement('img');
genImg.setAttribute('src', `https://placeimg.com/640/480/${getRandomCat()}?t=${getImageId()}`);
//image generated
console.log(`Image: ${genImg.getAttribute('src')}`);
getNewImage.addEventListener('click', function() {
getRandomCat();
getImageId();
});
imageContainer.appendChild(genImg);
<button type="button" id="getNewImage">New Image</button>
<div class="random-image"></div>
srcattribute on the image?