## HTML DOM nextElementSibling Property
The `nextElementSibling` property returns the element immediately following the specified element in the same tree level.
This property is read-only and is highly useful for traversing the Document Object Model (DOM) without accidentally selecting whitespace or comment nodes.
---
## Quick Example
The following code retrieves the HTML content of the next sibling element of the element with `id="item1"`:
```javascript
// Get the HTML content of the next sibling element
var nextContent = document.getElementById("item1").nextElementSibling.innerHTML;
```
---
## Definition and Usage
The `nextElementSibling` property returns the next sibling **element node** of the specified element. If there is no next sibling element, it returns `null`.
### Difference between `nextSibling` and `nextElementSibling`
It is important to understand how `nextElementSibling` differs from `nextSibling`:
* **`nextSibling`**: Returns the next sibling **node**, which can be an element node, a text node (including whitespace, line breaks, and tabs), or a comment node.
* **`nextElementSibling`**: Returns only the next sibling **element node** (ignoring text and comment nodes).
### Related Properties
* To get the *previous* sibling element, use the (prop-element-previouselementsibling.html) property.
* To get all child elements of a specified element, use the (prop-element-children.html) property.
---
## Syntax
```javascript
let nextSiblingElement = node.nextElementSibling;
```
---
## Technical Details
| Feature | Description |
| :--- | :--- |
| **Return Value** | A **Node** object representing the next sibling element of the specified node. Returns `null` if no such element exists. |
| **Read/Write** | Read-only |
| **DOM Version** | DOM Level 3 |
---
## Browser Support
The `nextElementSibling` property is fully supported by all modern browsers:
| Property | Chrome | Edge / IE | Firefox | Safari | Opera |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **`nextElementSibling`** | 2.0+ | 9.0+ | 3.5+ | 4.0+ | 10.0+ |
---
## Interactive Code Examples
### Example 1: Basic Traversal
In this example, we will select an active list item and style its immediate next sibling.
#### HTML:
```html
Item 1 (Active)
Item 2
Item 3
```
#### JavaScript:
```javascript
function highlightNext() {
const currentItem = document.getElementById("item1");
const nextItem = currentItem.nextElementSibling;
if (nextItem !== null) {
nextItem.style.backgroundColor = "yellow";
nextItem.style.fontWeight = "bold";
} else {
console.log("No next sibling element found.");
}
}
```
### Example 2: Comparing `nextSibling` vs `nextElementSibling`
This example demonstrates how `nextSibling` might return an empty text node (due to line breaks in HTML), while `nextElementSibling` safely targets the actual HTML element.
```html