---
id: api/utilities/$
title: Cypress.$ | Cypress Documentation
description: Cypress automatically includes jQuery and exposes it as Cypress.$.
section: api
source_path: docs/api/utilities/$.mdx
version: 29b099a83033817a9072f7deec58409720b52bc4
updated_at: '2026-05-03T15:21:58.370Z'
---
# Cypress.$

Cypress automatically includes [jQuery](http://jquery.com) and exposes it as `Cypress.$`.

This is a great way to _synchronously_ query for elements when debugging from Developer Tools.

## Syntax

```
Cypress.$(selector)// other proxied jQuery methodsCypress.$.EventCypress.$.DeferredCypress.$.ajaxCypress.$.getCypress.$.getJSONCypress.$.getScriptCypress.$.post
```

### Usage

**Correct Usage**

```
Cypress.$('p')
```

**Incorrect Usage**

```
cy.$('p') // Errors, cannot be chained off 'cy'
```

## Examples

### Selector

```
const $li = Cypress.$('ul li:first')cy.wrap($li)  .should('not.have.class', 'active')  .click()  .should('have.class', 'active')
```

## Notes

### Cypress.$ vs. cy.$$

You can also query DOM elements with `cy.$$`. But `Cypress.$` and `cy.$$` are different.

`Cypress.$` refers to the `jQuery` function itself. You can do anything with `Cypress.$` if you can do it with the `jQuery` function. So, both of the examples below work.

```
Cypress.$.each([1, 2, 3], (index, value) => {  expect(index).to.eq(value)}) // works
```

```
$.each([1, 2, 3], (index, value) => {  expect(index).to.eq(value)}) // also works
```

But `cy.$$` is a wrapper of the `jQuery.fn.init` function. In other words, you can only query DOM elements with `cy.$$`. Because of that, the jQuery utility functions like `jQuery.each`, `jQuery.grep` don't work with `cy.$$`.

```
cy.$$.each([1, 2, 3], (index, value) => {  expect(index).to.eq(value)}) // fails
```

## See also

*   [Bundled Libraries](/llm/markdown/app/references/bundled-libraries.md)
