# jQuery: Get an Element's ID Attribute Correctly

> Get an element's id using jQuery's attr() method or array subscript syntax since the returned jQuery object has no id property directly

**URL:** https://sentry.io/answers/get-the-id-of-an-element-using-jquery/

---

## The Problem

How can I get the `id` of an element using jQuery? I've tried the following code:

```javascript
element = $('#test'); // select element with ID 'test'
console.log(element.id); // prints "undefined" to the browser console
```

Why doesn't this work and what should I do instead?

## The Solution

When we invoke a jQuery selector like `$('#test')`, it returns an array of elements that match the selector. In the code above, an array containing all elements with the `id` 'test' will be stored in `element`. We can subscript this object to get individual elements (e.g. `$('#test')[0]`) or apply methods to all elements in the array (e.g. `$('#test').hide()`).

Because HTML `id`s must be unique, the array returned by `$('#test')` will only ever contain one element. As many of jQuery's most common methods, such as `hide()` work on both individual elements and arrays, it usually doesn't matter whether we're working with a single element or an array. However, as the arrays returned by jQuery do not have an `id` attribute, attempting to access `$('#test').id` will return `undefined`.

We can access the element's `id` in one of two ways:

1. Subscripting the array:
    ```javascript
    element = $('#test'); // select element with ID 'test'
    console.log(element[0].id); // prints "test" to the browser console
    ```
2. Using jQuery's `attr` method on the returned array:
    ```javascript
    element = $('#test'); // select element with ID 'test'
    console.log(element.attr('id')); // prints "test" to the browser console
    ```

Note that the plain JavaScript equivalent of a jQuery ID selector, `getElementById()` will not present the same problem, as it always returns a single element. We can achieve the same results as above with the following non-jQuery JavaScript code:

```javascript
element = document.getElementById('test');
console.log(element.id);
```

---

*Source: [sentry.io/answers/get-the-id-of-an-element-using-jquery/](https://sentry.io/answers/get-the-id-of-an-element-using-jquery/)*
