HTML DOM Document querySelector()

Examples

Get the first <p> element:

document.querySelector("p");
Try it Yourself »

Get the first element with class="example":

document.querySelector(".example");
Try it Yourself »

More examples below.


Description

The querySelector() method returns the first element that matches a CSS selector.

To return all matches (not only the first), use the querySelectorAll() instead.

Both querySelector() and querySelectorAll() throw a SYNTAX_ERR exception if the selector(s) is invalid.


The Difference Between an HTMLCollection and a NodeList

A NodeList and an HTMLcollection is very much the same thing.

Both are array-like collections (lists) of nodes (elements) extracted from a document. The nodes can be accessed by index numbers. The index starts at 0.

Both have a length property that returns the number of elements in the list (collection).

An HTMLCollection is a collection of document elements.

A NodeList is a collection of document nodes (element nodes, attribute nodes, and text nodes).

HTMLCollection items can be accessed by their name, id, or index number.

NodeList items can only be accessed by their index number.

An HTMLCollection is always a live collection. Example: If you add a <li> element to a list in the DOM, the list in the HTMLCollection will also change.

A NodeList is most often a static collection. Example: If you add a <li> element to a list in the DOM, the list in NodeList will not change.

The getElementsByClassName() and getElementsByTagName() methods return a live HTMLCollection.

The querySelectorAll() method returns a static NodeList.

The childNodes property returns a live NodeList.


Syntax

document.querySelector(CSS selectors)

Parameters

Parameter Description
CSS
selectors
Required.
One or more CSS selectors.

CSS selectors select HTML elements based on id, classes, types, attributes, values of attributes etc.
For a full list, go to our CSS Selectors Reference.

For multiple selectors, separate each selector with a comma (See "More Examples").

Return Value

Type Description
ObjectA NodeList with the first element that matches the CSS selector(s).
If no matches are found, null is returned.


More Examples

Get the first <p> element in with class="example":

document.querySelector("p.example");
Try it Yourself »

Change the text of the element with id="demo":

document.querySelector("#demo").innerHTML = "Hello World!";
Try it Yourself »

Select the first <p> element with the parent is a <div> element.

document.querySelector("div > p");
Try it Yourself »

Select the first <a> element that has a "target" attribute:

document.querySelector("a[target]");
Try it Yourself »

Select the first <h3> or the first <h4>:

<h3>A h3 element</h3>
<h4>A h4 element</h4>
document.querySelector("h3, h4").style.backgroundColor = "red";
Try it Yourself »

Select the first <h3> or the first <h4>:

<h4>A h4 element</h4>
<h3>A h3 element</h3>
document.querySelector("h3, h4").style.backgroundColor = "red";
Try it Yourself »

Browser Support

document.querySelector() is a DOM Level 1 (1998) feature.

It is fully supported in all browsers:

Chrome Edge Firefox Safari Opera IE
Yes Yes Yes Yes Yes 9-11


Copyright 1999-2023 by Refsnes Data. All Rights Reserved.