Mastering JavaScript DOM Manipulation: innerText vs innerHTML vs textContent

Lakshit Rajput
3 min readAug 27, 2023

Most of us use innerText, innerHTML, and textContent daily, but we don’t know the actual difference between them. These three methods are often used for manipulating text content within the HTML elements. In this blog, we’ll be exploring the differences between them.

Let us try to understand it using an example:

<!DOCTYPE html>
<html lang="en">

<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>innerText vs innerHTML vs textContent</title>


<div>Hello World!</div>

<div id="root">
//Content to be added by methods.



Initially, our code is giving this as output:

Output without using innerText, innerHTML, and textContent

Now, let us one by one use these methods and explore the differences between the three — innerText, innerHTML, and textContent.

Let us take innerHTML first:

innerHTML returns everything inside it including all HTML elements, child tags, and text content and it is used to add HTML to the element.

        let root = document.getElementById("root")
root.innerHTML = `
<p>The content is added using innerHTML method.</p>`

innerHTML method gives the following output:

Output for innerHTML
Console Output for innerHTML

Now, let’s take the innerText:

innerText returns the text that is visible on the screen means it excludes hidden text and the tags. It shows the text as it is visible on the screen. It excludes the hidden text and the HTML tags. It is used to add the text to an element.

        let root = document.getElementById("root")
root.innerText = `The content is added using innerText and
it takes text as we want to display it on screen.`

innerText method gives the following output:

Output for innerText
Console Output for innerHTML

Now, it’s turn for textContent:

textContent returns complete text including the hidden text and hidden HTML tags. It shows exactly as the code is laid out in the source code.

let root = document.getElementById("root")
root.textContent = `The content is added using textContent
and it gives the output as a text only no matter
if we are adding multiple blank spaces or
adding content in next line.`

textContent method gives the following output:

Output for textContent
Console Output for textContent

Deciding among innerText, innerHTML, and textContent relies on your particular use scenario. Every property exhibits unique behaviors concerning HTML interpretation, safety, and perceptibility. Grasping these distinctions empowers you to adeptly manage text content within the DOM, ensuring code security and user experience preservation.



Lakshit Rajput

युद्धं शरणम् गच्छामि।