mooc-course.com is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

How to change img src in JavaScript?

Are you tired of static images on your website? Want to add some dynamic flair to your web pages? Look no further! Changing an image’s source (src) using JavaScript is a game-changer for creating interactive and engaging web experiences. In this guide, we’ll explore five powerful methods to swap images on the fly, giving your website the visual pizzazz it deserves.

How to change img src in javascript?

Before we dive into the specific methods, let’s understand the basic concept. In HTML, an image is typically represented by a <img> tag with a src attribute specifying the image file’s location. To change an image dynamically, we need to modify this src attribute using JavaScript. The basic syntax looks like this:

document.getElementById('imageId').src = 'new-image-path.jpg';

Now, let’s explore five different methods to achieve this, along with their pros and cons.

Read more: How to test if a variable is undefined in JavaScript?

Method 1: Using getElementById()

This method targets a specific image element by its ID and changes its src attribute.

Syntax:

document.getElementById('imageId').src = 'new-image-path.jpg';

Example:

document.getElementById('myImage').src = 'new-cat-picture.jpg';

Pros:

  • Simple and straightforward
  • Works well when you have a single, uniquely identified image

Cons:

  • Requires the image to have a unique ID
  • Not suitable for multiple images with the same functionality

Method 2: Using querySelector()

This method allows you to select an image using CSS selectors and change its src attribute.

Syntax:

document.querySelector('selector').src = 'new-image-path.jpg';

Example:

document.querySelector('.profile-pic').src = 'new-profile-pic.jpg';

Pros:

  • More flexible than getElementById()
  • Can target elements using various CSS selectors

Cons:

  • Only changes the first matching element if multiple exist
  • Slightly slower than getElementById() for simple selections

Method 3: Using getElementsByClassName()

This method allows you to change the src of multiple images that share the same class name.

Syntax:

let images = document.getElementsByClassName('className');
for (let i = 0; i < images.length; i++) {
    images[i].src = 'new-image-path.jpg';
}

Example:

let thumbnails = document.getElementsByClassName('thumbnail');
for (let i = 0; i < thumbnails.length; i++) {
    thumbnails[i].src = 'new-thumbnail.jpg';
}

Pros:

  • Can change multiple images at once
  • Useful for applying the same change to a group of images

Cons:

  • Requires looping through the collection
  • Changes all images with the specified class

Method 4: Using setAttribute()

This method uses the setAttribute() function to change the src attribute of an image.

Syntax:

document.getElementById('imageId').setAttribute('src', 'new-image-path.jpg');

Example:

document.getElementById('banner').setAttribute('src', 'new-banner.jpg');

Pros:

  • More explicit and readable
  • Can be used to set other attributes as well

Cons:

  • Slightly more verbose than direct property assignment
  • No significant performance difference compared to direct assignment

Method 5: Using jQuery

If you’re using jQuery in your project, you can use its simplified syntax to change the src attribute.

Syntax:

$('#imageId').attr('src', 'new-image-path.jpg');

Example:

$('.product-image').attr('src', 'new-product.jpg');

Pros:

  • Concise and readable syntax
  • Works well with jQuery’s other features and selectors

Cons:

  • Requires including the jQuery library
  • May be overkill for simple image swapping tasks

Which Method Should You Use?

The choice of method depends on your specific needs and project setup:

  1. Use getElementById() for single, uniquely identified images.
  2. Choose querySelector() for more flexible selection using CSS selectors.
  3. Opt for getElementsByClassName() when changing multiple images with the same class.
  4. Use setAttribute() for explicit attribute manipulation or when setting multiple attributes.
  5. Go with jQuery if you’re already using it in your project and prefer its syntax.

For most simple cases, getElementById() or querySelector() will suffice. However, as your project grows in complexity, you might find the other methods more suitable for specific scenarios.

Leave a Reply

Your email address will not be published. Required fields are marked *

Free Worldwide Courses

Learn online for free

Enroll in Multiple Courses

Learn whatever your want from anywhere, anytime

International Language

Courses offered in multiple languages & Subtitles

Verified Certificate

Claim your verified certificate