JavaScript DOM Manipulation - Modifying Attributes

Dynamic websites often require you to modify HTML element attributes using JavaScript. In this guide, we'll explore how to manipulate attributes of HTML elements in the Document Object Model (DOM), and we'll provide sample code to demonstrate these techniques.

Accessing Elements

To modify attributes, you first need to access the HTML elements. This can be done using various methods, including:

// Access an element by its ID
const elementById = document.getElementById('element-id');
// Access an element by its class name
const elementByClass = document.getElementsByClassName('element-class')[0];
// Access an element by its tag name
const elementByTag = document.getElementsByTagName('div')[0];
// Access an element using querySelector
const elementByQuery = document.querySelector('#element-id');

Modifying Attributes

Once you have access to an element, you can modify its attributes using JavaScript. Here are some common attribute manipulations:

// Change the text of an element
elementById.textContent = 'New Text Content';
// Change the value of an input element
elementByQuery.value = 'New Input Value';
// Change the source (src) of an image element
elementByClass.src = 'new-image.jpg';
// Change the href of a link (anchor) element
elementByTag.href = '';
// Add a new class to an element
// Remove a class from an element
// Toggle a class on and off
// Change the attribute value
elementByTag.setAttribute('data-custom', 'new-value');

Getting Attributes

You can also retrieve and use the values of attributes:

// Get the value of an attribute
const customValue = elementByQuery.getAttribute('data-custom');
console.log('Custom Value:', customValue);


Modifying attributes of HTML elements in the DOM is a common task when creating dynamic web pages. JavaScript provides methods for accessing, changing, and retrieving attribute values, allowing you to manipulate your web page content in response to user interactions and events.

Experiment with attribute manipulation in your web projects to create interactive and user-friendly websites.