JamEngulfer
JamEngulfer

Reputation: 747

Get the value of an <h2> tag with JavaScript

I am trying to generate an MD5 check-sum of every element on a page that has the <h2> tag, then display the values as a popup.

The code I have already should get each <h2> element, I just need to get the actual value of each one.

var ghead = document.getElementsByTagName('h2');

for (i=0; i<ghead.length; i++) {
    var gh = ghead[i];
    var ts = gh.toString();
    var ms = b64_md5(ts);
    alert(ts);
    alert(ms);
}

The usage of b64_md5(ts) basically is what converts the ts variable into the MD5 value. However, the ts variable is the ID or name of the Type of Element, not the Element's value itself.

Also, if I wanted to make a cookie that has two values stored in it, a name and a checksum, could I use gh.innerText; to set the unique name, as I have had issues with using this method so far.

Upvotes: 5

Views: 44564

Answers (4)

levinjay
levinjay

Reputation: 116

Try it in devtools

document.getElementsByTagName('h2').item(0).innerHTML;

This will return the value of H2

Upvotes: 0

Torsten Walter
Torsten Walter

Reputation: 5782

If you want to access the type of an element you can just ask for this:

gh.nodeName // contains the name of the node in uppercase e.g. "H2"
gh.nodeType // contains the numerical Type of the node e.g. "1"
gh.id       // contains the value of the node's id attribute
gh.name     // contains the value of the name attribute (typically for form elements)

As mentioned below, accessing the actual node content is a different matter:

gh.innerHTML   // contains the full html source within the node
gh.innerText   // (IE only) contains the visible textual content stripped of any html markup
gh.textContent // W3C compliant equivalent of innerText

For cross browser access to the text contents use something like this:

var text = gh.innerText || gh.textContent;

Upvotes: 1

Michael Besteck
Michael Besteck

Reputation: 2423

To get the textual content of a h2 tag element gh:

var text = gh.childNodes.item(0).data;

Upvotes: 2

James Allardice
James Allardice

Reputation: 165971

You can use the innerHTML property to get the HTML contents of an element:

var ts = gh.innerHTML;

Note that h2 elements (and most other elements) don't have a "value". Only elements that behave as form controls have a value property (e.g. the input element).

Upvotes: 13

Related Questions