Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ziggi/dom-parents

Get the parents of the element, optionally filtered by a selector.
https://github.com/ziggi/dom-parents

Last synced: 14 days ago
JSON representation

Get the parents of the element, optionally filtered by a selector.

Awesome Lists containing this project

README

        

# dom-parents

Get the parents of the element, optionally filtered by a selector.

## Install

```sh
npm install --save dom-parents
```

## Examples

### Apply action to all parent elements

```js
import getParents from 'dom-parents';

getParents(document.querySelector('#main'), '.cat').forEach((element) => {
element.style.backgroundColor = '#008800';
})
```

### Check the existence of parents

```js
import getParents from 'dom-parents';

document.querySelectorAll('.animal').forEach((element) => {
element.addEventListener('mousedown', () => {
const isBobAnAnimal = getParents(this, '.animals').length !== 0;
if (isBobAnAnimal) {
console.log('Bob is animal');
} else {
console.log('Bob is spy!');
}
});
});
```

### If the user clicks on an `.item` element
```js
import getParents from 'dom-parents';

document.addEventListener('mousedown', (event) => {
const [item] = getParents(event.target, '.item', true);
if (item) {
console.log('mousedown on .item element');
}
});
```

## API

### getParents(element, selector, includeElement = false)

Returns the parents of the element, optionally filtered by a selector.

#### element

Type: `object`

The element from which the search should start.

#### selector

Type: `string`

Selector to search for the parent elements.

#### includeElement

Type: `bool`

Default: `false`

Include `element` to the search or not.