bonze

1.6.2 • Public • Published

Bonze

Bonze

NPM version

Super tiny chainable and extendable tool wrapping native querySelectorAll for selecting, creating and filtering DOM Elements with ease. ~750b Gzipped.

Bonze

Concept

Example 1

Without Bonze

const el = document.querySelector('#section');

if (el) {
  el.style.color = 'green';
}

With Bonze

$('#section')(el => el.style.color = 'green');

Example 2

Without Bonze

const elements = document.querySelectorAll('div, p');

for (let i = 0; i < elements.length; ++i) {
  elements[i].style.color = 'green';
}

if (elements.length) {
  elements[elements.length - 1].style.color = 'red';
}

With Bonze

$('div, p')
  .each(el => el.style.color = 'green')
  .last(el => el.style.color = 'red');

Install

NPM

npm install --save bonze
import $ from 'bonze';

CDN

From Unpkg.com

UMD

<script src="https://unpkg.com/bonze@latest"></script>

ESM module

<script src="https://unpkg.com/bonze@latest/dist/bonze.esm.min.js"></script>

If you include bonze this way use bonze instead of $ in the examples below.

Usage

Dom ready

$(() => {
  document.body.classList.add('ready');
});

Select elements

$('h1, h2, h3').each(headings => {
  headings.classList.add('red');
});

$('h1, h2, h3')(headings => { // Shortcut for each
  headings.classList.add('red');
});

Select elements in context

$('h1, h2, h3', '#article')(headings => {
  headings.classList.add('red');
});

Filter elements

$('div').first(div => {
  div.classList.add('first');
});

$('div').nth(2, div => {
  div.classList.add('third');
});

$('div').last(div => {
  div.classList.add('last');
});

$('div').odd(div => {
  div.classList.add('odd');
});

$('div').even(div => {
  div.classList.add('even');
});

$('div').filter(div => div.textContent.includes('error'), div => {
  div.classList.add('red');
});

Create element

$('<h1>My New Title</h1>')((h1) => {
  document.body.prepend(h1);
});

Chainable

$('div')
  ((div, i) => {
    div.innerHTML = 'Paragraph ' + i;
  })
  (div => {
    div.classList.add('green');
  })
  .last(div => {
    div.classList.add('red');
  });

Extendable

$.plugin('addClass', (el, index, elmts, name) => {
  el.classList.add(name);
});

$('div').odd().addClass('black');
$('div').even().addClass('white');

Get DOM elements

const domElementArray = $('div')();

const domFirstElement = $('div')(0);

const domSecondElement = $('div')(1);

Credits

Icon made by Freepik from www.flaticon.com.

Readme

Keywords

Package Sidebar

Install

npm i bonze

Weekly Downloads

2

Version

1.6.2

License

MIT

Unpacked Size

16 kB

Total Files

7

Last publish

Collaborators

  • jaysalvat