Get all images in element
JavaScript, Browser · Oct 22, 2020

Fetches all images from within an element and puts them into an array.
- Use
Element.getElementsByTagName()
to get all<img>
elements inside the provided element. - Use
Array.prototype.map()
to map everysrc
attribute of each<img>
element. - If
includeDuplicates
isfalse
, create a newSet
to eliminate duplicates and return it after spreading into an array. - Omit the second argument,
includeDuplicates
, to discard duplicates by default.
const getImages = (el, includeDuplicates = false) => {
const images = [...el.getElementsByTagName('img')].map(img =>
img.getAttribute('src')
);
return includeDuplicates ? images : [...new Set(images)];
};
getImages(document, true); // ['image1.jpg', 'image2.png', 'image1.png', '...']
getImages(document, false); // ['image1.jpg', 'image2.png', '...']