Vanilla JavaScript: Add Class to Image Links

It seems that for every new web design, I need to add a specific CSS class to linked images. So I can distinguish between regular text links and image links. And then apply styles as desired for each. I’ve tried all sorts of CSS and JavaScript/jQuery tricks over the years, but so far this one is the best.. Of course, “best” is relative. For me, this snippet is great because it’s simple, lightweight, and written in vanilla JavaScript. So there […]


This content originally appeared on Perishable Press and was authored by Jeff Starr

It seems that for every new web design, I need to add a specific CSS class to linked images. So I can distinguish between regular text links and image links. And then apply styles as desired for each. I’ve tried all sorts of CSS and JavaScript/jQuery tricks over the years, but so far this one is the best..

Of course, “best” is relative. For me, this snippet is great because it’s simple, lightweight, and written in vanilla JavaScript. So there are no dependencies.

Magic Bullet

Here is the magic code, strictly plug-&-play:

window.onload = function() {
	imageLinks();
}

function imageLinks() {
	var anchors = document.querySelectorAll('a');
	Array.prototype.forEach.call(anchors, function(a) {
		var img = a.querySelector('img');
		if (img !== null) {
			a.classList.add('img-link');
		}
	});
}

This snippet does one thing: adds a class named img-link to all links <a> that contain an image <img> element. Simply add the code and done.

After adding this code, any/all image links will include a class named img-link. Here is an example of the HTML output after applying the above snippet:

<a href="/path/to/somewhere/" class="img-link">
	<img src="/path/to/image.png" alt="">
</a>

So now we can add styles specifically to links that contain an image. For example:

.img-link { border: 1px solid gold; }
.img-link img { border: none; }

Let me know if you can find any way to improve this “magic bullet” vanilla JavaScript technique. Or maybe now it can be done with simple CSS..?



This content originally appeared on Perishable Press and was authored by Jeff Starr


Print Share Comment Cite Upload Translate Updates
APA

Jeff Starr | Sciencx (2023-01-14T22:54:54+00:00) Vanilla JavaScript: Add Class to Image Links. Retrieved from https://www.scien.cx/2023/01/14/vanilla-javascript-add-class-to-image-links/

MLA
" » Vanilla JavaScript: Add Class to Image Links." Jeff Starr | Sciencx - Saturday January 14, 2023, https://www.scien.cx/2023/01/14/vanilla-javascript-add-class-to-image-links/
HARVARD
Jeff Starr | Sciencx Saturday January 14, 2023 » Vanilla JavaScript: Add Class to Image Links., viewed ,<https://www.scien.cx/2023/01/14/vanilla-javascript-add-class-to-image-links/>
VANCOUVER
Jeff Starr | Sciencx - » Vanilla JavaScript: Add Class to Image Links. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2023/01/14/vanilla-javascript-add-class-to-image-links/
CHICAGO
" » Vanilla JavaScript: Add Class to Image Links." Jeff Starr | Sciencx - Accessed . https://www.scien.cx/2023/01/14/vanilla-javascript-add-class-to-image-links/
IEEE
" » Vanilla JavaScript: Add Class to Image Links." Jeff Starr | Sciencx [Online]. Available: https://www.scien.cx/2023/01/14/vanilla-javascript-add-class-to-image-links/. [Accessed: ]
rf:citation
» Vanilla JavaScript: Add Class to Image Links | Jeff Starr | Sciencx | https://www.scien.cx/2023/01/14/vanilla-javascript-add-class-to-image-links/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.