Get HTML Elements with JavaScript

09/05/2021

Contents

In this article, you will learn how to get HTML elements with JavaScript.

5ways to get HTML elemtnts

document.getElementById()

Return value: HTMLElement / null

The getElementById() returns an element object with the specified ID. If no matching element was found in the document, it returns null.

const element = document.getElementById('idName');

Example

HTML
<p id="myid">Hello World</p>
JavaScript
/* Get an element that have an id of 'myid': */
const myid = document.getElementById('myid');
console.log(myid);              // <p id="myid">Hello World</p>
console.log(myid.textContent);  // "Hello World"

const foo = document.getElementById('foo');
console.log(foo);  // null

document.getElementsByClassName() rootElement.getElementsByClassName();

Return value: HTMLCollection

The getElementsByClassName() returns an array-like object of all child elements which have all of the given class name(s).

const elements = document.getElementsByClassName('classNames');
const elements = rootElement.getElementsByClassName('classNames');

Example

HTML
<div id="myid">
  <span>Hello World 1</span>
  <span class="myclass">Hello World 2</span>
  <span>Hello World 3</span>
</div>
<p class="myclass test">Hello World 4</p>
JavaScript
/* Get the first element with a class of 'foo', or undefined if there is no matching element: */
const foo = document.getElementsByClassName('foo')[0];
console.log(foo); //undefined

/* Get all elements that have a class of 'myclass': */
const myclass = document.getElementsByClassName('myclass');
console.log(myclass);  // HTMLCollection(2) [span.myclass, p.myclass]
for (var i = 0; i < myclass.length; i++) {
  console.log(myclass[i].textContent);
}
// "Hello World 2"
// "Hello World 4"

/* Get all elements that have both the 'myclass' and 'test' classes: */
const myclass_test = document.getElementsByClassName('myclass test');
console.log(myclass_test);  // HTMLCollection [p.myclass.test]
for (var i = 0; i < myclass_test.length; i++) {
  console.log(myclass_test[i].textContent);
}
// "Hello World 4"

/* Get all elements that have a class of 'myclass', inside of an element that has the ID of 'myid': */
const myid_myclass = document.getElementById('myid').getElementsByClassName('myclass');
console.log(myid_myclass);  // HTMLCollection [span.myclass]
for (var i = 0; i < myid_myclass.length; i++) {
  console.log(myid_myclass[i].textContent);
}
// "Hello World 2"

document.getElementsByTagName() rootElement.getElementsByTagName()

Return value: HTMLCollection

The getElementsByTagName() returns an HTMLCollection of elements with the given tag name.

const elements = document.getElementsByTagName('tagName');
const elements = rootElement.getElementsByTagName('tagName');

Example

HTML
<div id="myid">
  <p>Hello World 1</p>
  <p>Hello World 2</p>
  <p>Hello World 3</p>
</div>
<p id="foo">Hello World 4</p>
JavaScript
/* Get all elements that have the <p> tag: */
const mytag = document.getElementsByTagName('p');
console.log(mytag);  // HTMLCollection(4) [p, p, p, p#foo, foo: p#foo]
for (var i = 0; i < mytag.length; i++) {
  console.log(mytag[i].textContent);
}
// "Hello World 1"
// "Hello World 2"
// "Hello World 3"
// "Hello World 4"

/* Get all elements that have the <p> tag, inside of an element that has the ID of 'myid': */
const myid_mytag = document.getElementById('myid').getElementsByTagName('p');
console.log(myid_mytag);  // HTMLCollection(3) [p, p, p]
for (var i = 0; i < myid_mytag.length; i++) {
  console.log(myid_mytag[i].textContent);
}
// "Hello World 1"
// "Hello World 2"
// "Hello World 3"

document.querySelector() rootElement.querySelector()

Return value: HTMLElement / null

The querySelector() returns the first Element within the document that matches the specified selector, or group of selectors. If no matches are found, null is returned.

const elements = document.querySelector('selector');
const elements = rootElement.querySelector('selector');

Example

HTML
<div id="myid">
  <p>Hello World 1</p>
  <p class="myclass">Hello World 2</p>
  <p>Hello World 3</p>
</div>
<ul>
  <li class="myclass">Hello World 4</li>
  <li>Hello World 5</li>
</ul>
JavaScript
const foo = document.querySelector('.foo');
console.log(foo); //null

/* the first element in the document with the class "myclass" is returned: */
const myclass = document.querySelector('.myclass');

console.log(myclass);  // <p class="myclass">Hello World 2</p>
console.log(myclass.textContent);  // "Hello World 2"

/* the first element in the document with the class "myclass" inside a <ul> is returned: */
const ul_myclass = document.querySelector('ul .myclass');

console.log(ul_myclass);  // <li class="myclass">Hello World 4</li>
console.log(ul_myclass.textContent);  // "Hello World 4"

/* the first element in the document with the class "myclass" inside of an element that has the ID of 'myid' is returned: */
const myid_myclass = document.getElementById('myid').querySelector('.myclass');

console.log(myid_myclass);  // <p class="myclass">Hello World 2</p>
console.log(myid_myclass.textContent);  // "Hello World 2"

const lastChild = document.querySelector('li:last-child');

console.log(lastChild);  // <li>Hello World 5</li>
console.log(lastChild.textContent);  // "Hello World 5"

document.querySelectorAll() rootElement.querySelectorAll()

Return value: NodeList

The querySelectorAll() returns a static (not live) NodeList representing a list of the document's elements that match the specified group of selectors.

const elements = document.querySelectorAll('selector');
const elements = rootElement.querySelectorAll('selector');

Example

HTML
<ul id="myid">
  <li>Hello World 1</li>
  <li class="myclass">Hello World 2</li>
  <li>Hello World 3</li>
</ul>
<p class="myclass">Hello World 4</p>
<ul>
  <li class="myclass">Hello World 5</li>
  <li>Hello World 6</li>
</ul>
JavaScript
/* Get all elements that have a class of 'myclass': */
const myclass = document.querySelectorAll('.myclass');

console.log(myclass);  // NodeList(3) [li.myclass, p.myclass, li.myclass]
for (var i = 0; i < myclass.length; i++) {
  console.log(myclass[i].textContent);
}
// Hello World 2
// Hello World 4
// Hello World 5

/* Get all elements in the document with the class "myclass" inside a <ul> is returned: */
const ul_myclass = document.querySelectorAll('ul .myclass');

console.log(ul_myclass);  // NodeList(2) [li.myclass, li.myclass]
for (var i = 0; i < ul_myclass.length; i++) {
  console.log(ul_myclass[i].textContent);
}
// Hello World 2
// Hello World 5

/* Get all elements in the document with the class "myclass" inside of an element that has the ID of 'myid' is returned: */
const myid_myclass = document.getElementById('myid').querySelectorAll('.myclass');

console.log(myid_myclass);  // NodeList [li.myclass]
for (var i = 0; i < myid_myclass.length; i++) {
  console.log(myid_myclass[i].textContent);
}
// Hello World 2

const lastChild = document.querySelectorAll('li:last-child');

console.log(lastChild);  // NodeList(2) [li, li]
for (var i = 0; i < lastChild.length; i++) {
  console.log(lastChild[i].textContent);
}
// Hello World 3
// Hello World 6