Get unlimited public & private packages + team-based management with npm Teams.Learn more »

selector-lite

20.2.0 • Public • Published

Selector lite – Build Coverage Size Buy Me A Tea

A small pure-JavaScript CSS selector engine.

  • no library dependencies
  • CSS 3 Selector support
  • only 2KB minified and 1KB gzipped

Examples

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)
}

Methods

  • 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 selectors

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 and b can be used as temp variables.
// Add `:input` selector
selector.selectorMap.input = "_.tagName=='INPUT'"
 
// Add `:val()` selector
selector.selectorMap.val = "_.value==v"

Coding Style Guidelines

  • Use tabs for indentation, align with spaces
  • Use lowerCamelCase for method and variable names
  • Use UpperCamelCase for constructor names
  • Commit files with Unix-style line endings
  • Do not use spaces in file and directory names Consider substituting a dash (-) where you would normally use spaces.
  • Rebase before pushing
  • Fix tests before push or pull request

External links

GitHub repo | npm package | DOM spec | Selectors Level 3 | Travis CI | Coveralls coverage | Buy Me A Tea

Licence

Copyright (c) 2015-2019 Lauri Rooden <lauri@rooden.ee>
The MIT License

Install

npm i selector-lite

DownloadsWeekly Downloads

97

Version

20.2.0

License

MIT

Unpacked Size

7.7 kB

Total Files

3

Last publish

Collaborators

  • avatar