A small pure-JavaScript CSS selector engine.
- no library dependencies
- CSS 3 Selector support
- only 2KB minified and 1KB gzipped
var selector = require("selector-lite")
// Can be used to implement browser built-in functions.
function getElementById(id) {
return selector.find(this, "#" + id, true)
}
function getElementsByTagName(tag) {
return selector.find(this, tag)
}
function getElementsByClassName(sel) {
return selector.find(this, "." + sel.replace(/\s+/g, "."))
}
function querySelector(sel) {
return selector.find(this, sel, true)
}
function querySelectorAll(sel) {
return selector.find(this, sel)
}
- selector.
find(node, selector, returnFirstMatch)
- Find matching elements like querySelector. - selector.
matches(node, selector)
- Returns a Boolean indicating whether or not the element would be selected by the specified selector string. - selector.
closest(selector)
- Returns the Element, descendant of this element (or this element itself), that is the closest ancestor of the elements selected by the selectors given in parameter. - selector.
next(selector)
- Retrieves the next sibling that matches selector. - selector.
prev(selector)
- Retrieves the preceding sibling that matches selector.
Custom selector can be added to selector.selectorMap, where method shortcuts are available (m->matches, c->closest, n->next, p->prev).
_
- node.v
- part between()
in:nth-child(2n+1)
.a
andb
can be used as temp variables.
// Add `:input` selector
selector.selectorMap.input = "_.tagName=='INPUT'"
// Add `:val()` selector
selector.selectorMap.val = "_.value==v"
Follow Coding Style Guidelines
Run tests
npm install
npm test
GitHub repo |
npm package |
DOM spec |
Selectors Level 3 |
Coveralls coverage
Buy Me A Tea
Copyright (c) 2015-2021 Lauri Rooden <lauri@rooden.ee>
The MIT License