# bianco.attr

[![Build Status][ci-image]][ci-url]
[![NPM version][npm-version-image]][npm-url]
[![NPM downloads][npm-downloads-image]][npm-url]
[![MIT License][license-image]][license-url]

## Usage

```js
import { set, get, has, remove } from 'bianco.attr'

// set an attribute on a node
const img = document.createElement('img')

set(img, 'width', 100)
get(img, 'width') // => '100'
has(img, 'width') // => true

remove(img, 'width')
get(img, 'width') // => null
```

[ci-image]:https://img.shields.io/github/workflow/status/biancojs/attr/test?style=flat-square
[ci-url]:https://github.com/biancojs/attr/actions

[license-image]: http://img.shields.io/badge/license-MIT-000000.svg?style=flat-square

[license-url]: LICENSE.txt

[npm-version-image]: http://img.shields.io/npm/v/bianco.attr.svg?style=flat-square

[npm-downloads-image]: http://img.shields.io/npm/dm/bianco.attr.svg?style=flat-square

[npm-url]: https://npmjs.org/package/bianco.attr

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

#### Table of Contents

-   [set](#set)
    -   [Parameters](#parameters)
    -   [Examples](#examples)
-   [get](#get)
    -   [Parameters](#parameters-1)
    -   [Examples](#examples-1)
-   [remove](#remove)
    -   [Parameters](#parameters-2)
    -   [Examples](#examples-2)
-   [has](#has)
    -   [Parameters](#parameters-3)
    -   [Examples](#examples-3)

### set

Set any attribute on a single or a list of DOM nodes

#### Parameters

-   `els` **([HTMLElement](https://developer.mozilla.org/docs/Web/HTML/Element) \| [NodeList](https://developer.mozilla.org/docs/Web/API/NodeList) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array))** DOM node/s to parse
-   `name` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object))** either the name of the attribute to set
                                                    or a list of properties as object key - value
-   `value` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** the new value of the attribute (optional)

#### Examples

```javascript
import { set } from 'bianco.attr'

const img = document.createElement('img')

set(img, 'width', 100)

// or also
set(img, {
  width: 300,
  height: 300
})
```

Returns **([HTMLElement](https://developer.mozilla.org/docs/Web/HTML/Element) \| [NodeList](https://developer.mozilla.org/docs/Web/API/NodeList) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array))** the original array of elements passed to this function

### get

Get any attribute from a single or a list of DOM nodes

#### Parameters

-   `els` **([HTMLElement](https://developer.mozilla.org/docs/Web/HTML/Element) \| [NodeList](https://developer.mozilla.org/docs/Web/API/NodeList) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array))** DOM node/s to parse
-   `name` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array))** name or list of attributes to get

#### Examples

```javascript
import { get } from 'bianco.attr'

const img = document.createElement('img')

get(img, 'width') // => '200'

// or also
get(img, ['width', 'height']) // => ['200', '300']

// or also
get([img1, img2], ['width', 'height']) // => [['200', '300'], ['500', '200']]
```

Returns **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array) \| [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))** list of the attributes found

### remove

Remove any attribute from a single or a list of DOM nodes

#### Parameters

-   `els` **([HTMLElement](https://developer.mozilla.org/docs/Web/HTML/Element) \| [NodeList](https://developer.mozilla.org/docs/Web/API/NodeList) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array))** DOM node/s to parse
-   `name` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array))** name or list of attributes to remove

#### Examples

```javascript
import { remove } from 'bianco.attr'

remove(img, 'width') // remove the width attribute

// or also
remove(img, ['width', 'height']) // remove the width and the height attribute

// or also
remove([img1, img2], ['width', 'height']) // remove the width and the height attribute from both images
```

Returns **([HTMLElement](https://developer.mozilla.org/docs/Web/HTML/Element) \| [NodeList](https://developer.mozilla.org/docs/Web/API/NodeList) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array))** the original array of elements passed to this function

### has

Set any attribute on a single or a list of DOM nodes

#### Parameters

-   `els` **([HTMLElement](https://developer.mozilla.org/docs/Web/HTML/Element) \| [NodeList](https://developer.mozilla.org/docs/Web/API/NodeList) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array))** DOM node/s to parse
-   `name` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array))** name or list of attributes to detect

#### Examples

```javascript
import { has } from 'bianco.attr'

has(img, 'width') // false

// or also
has(img, ['width', 'height']) // => [false, false]

// or also
has([img1, img2], ['width', 'height']) // => [[false, false], [false, false]]
```

Returns **([boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array))** true or false or an array of boolean values
