agurchand
agurchand

Reputation: 1665

How can get the text of a div tag using only javascript (no jQuery)

I tried this but showing "undefined".

function test() {
var t = document.getElementById('superman').value;
alert(t); }

Is there any way to get the value using simple Javascript no jQuery Please!

Upvotes: 114

Views: 326739

Answers (4)

Nick Wynther
Nick Wynther

Reputation: 108

Actually you dont need to call document.getElementById() function to get access to your div.

You can use this object directly by id:

text = test.textContent || test.innerText;
alert(text);

Upvotes: 0

Abdus
Abdus

Reputation: 320

You can use innerHTML(then parse text from HTML) or use innerText.

let textContentWithHTMLTags = document.querySelector('div').innerHTML; 
let textContent = document.querySelector('div').innerText;

console.log(textContentWithHTMLTags, textContent);

innerHTML and innerText is supported by all browser(except FireFox < 44) including IE6.

Upvotes: 1

dev4life
dev4life

Reputation: 11394

Because textContent is not supported in IE8 and older, here is a workaround:

var node = document.getElementById('test'),
var text  = node.textContent || node.innerText;
alert(text);

innerText does work in IE.

Upvotes: 15

dhar
dhar

Reputation: 2738

You'll probably want to try textContent instead of innerHTML.

Given innerHTML will return DOM content as a String and not exclusively the "text" in the div. It's fine if you know that your div contains only text but not suitable if every use case. For those cases, you'll probably have to use textContent instead of innerHTML

For example, considering the following markup:

<div id="test">
  Some <span class="foo">sample</span> text.
</div>

You'll get the following result:

var node = document.getElementById('test'),

htmlContent = node.innerHTML,
// htmlContent = "Some <span class="foo">sample</span> text."

textContent = node.textContent;
// textContent = "Some sample text."

See MDN for more details:

Upvotes: 220

Related Questions