dusk
A feathery (light), alacritous (fast), extensible DOM abstraction.
(Partly based on PlainJS. And faster than jQuery)
At its core it's nothing but a selector that will return an array of HTMLElement
's:
var $popup = dusk('#popup');
var $rows = dusk('.my-table tr');
var $oops = dusk('.non-existing-class');
This means it has the same collection of methods as a native array. Pretty cool. And you can pass dusk some strange things as well:
var $itself = dusk(dusk('div'));
var $list = dusk(document.querySelectorAll('div'));
var $context = dusk('.class', '#context');
Getting Started
dusk implements the Universal Module Definition (UMD), and resides on NPM so that you can really use it any way you want. To include it in your project:
Download it...
Get it from https://github.com/mjsarfatti/dusk/blob/master/dist/dusk.js
, then include it with:
HTML
<script src="path/to/dusk.js"></script>
AMD
require(['path/to/dusk.js'], function(dusk) {
});
CommonJS
var dusk = require('path/to/dusk.js');
...or NPM it
$ npm install --save dusk
, then:
CommonJS + NPM
var dusk = require('dusk');
ECMAScript 2015
import dusk from 'dusk';
Methods
At the moment it ships only one, static, method.
dusk.DOMReady
(shamelessly stolen from jQuery)
dusk.DOMReady(function() {
});
Extend (Plugins)
But it's already apt to be extended!
const $demo = dusk('#demo');
dusk.fn.plugin1 = function () {
return this;
};
dusk.fn.plugin2 = function () {
return this;
};
$demo.plugin1().plugin2();
The Future
Version 1.1 will include the following:
Events
Classes
- .hasClass()
- .addClass()
- .removeClass()
- .toggleClass()
It will also include polyfills for matches
and closest
.
This will cover 95% of the use cases. And remember, for all the rest you have PlainJS and the Fetch API.
Ps: of course, if you absolutely need .thirdChild()
you can easily extend the core. In fact, that is the whole purpose of this: a super-lightweight extensible DOM abstraction.
Browser support
At the moment dusk has been tested on
- IE11
- Edge
- Chrome
- Firefox
- Safari
Version 1.1 will be tested against IE9+ and mobile browsers as well.
License
dusk is released under the MIT license.