querySelectorAll selector engine
JavaScript
Latest commit 94cfebd Oct 7, 2014 @ryanve 0.9.0 release
Permalink
Failed to load latest commit information.
src
test
.gitattributes
.gitignore
GruntFile.js
README.md
package.json
scan.js
scan.min.js

README.md

scan

standalone querySelectorAll selector engine with jQuery-like interface

$ npm install scan --save

Basic usage

var scan = require('scan')
scan('.example').find('a').not('[href^="#"]')

API (0.9)

  • scan() instances are array-like and inherit from scan.prototype and Array.prototype
  • scan() methods chain intuitively or are callable via scan.prototype[method].call(array)
  • Methods are generally compatible with jQuery methods of the same name

scan(query, context?)

  • scan(selector) → elements that match selector
  • scan(selector, node|nodes) → elements that match selector from node or any nodes
  • scan(node|nodes) → nodes wrapped in scan instance

.find(needle)

  • scan(query).find(selector) → descendants that match selector
  • scan(query).find(element|elements) → elements that descend from query
  • scan(stack).find(fn, scope?) → the first value to pass fn.call(scope, value, i, stack)

.filter(needle)

  • scan(query).filter(nodes, selector) → stack filtered by selector
  • scan(query).filter(fn) → stack filtered by fn.call(element, i)
  • scan(query).filter(element|elements) → stack filtered by one or more elements
  • scan(array).filter(values) → the intersection of 2 arrays

.not(needle)

  • scan(query).filter(selector)nodes filtered against selector
  • scan(query).not(fn) → stack filtered against fn.call(element, i)
  • scan(query).not(element|elements)→ stack filtered against one or more elements
  • scan(array).not(values) → the difference of 2 arrays

#find(needle)

  • scan.find(selector, context?) → array of elements that match selector
  • scan.find(stack, fn, scope?) → the first value to pass fn.call(scope, value, i, stack)

#matches(element, selector)

  • scan.matches(element, selector)true if element matches selector

#contains(haystack, needle)

  • scan.contains(node, element)true if node contains element
  • scan.contains(stack, item, start=0)true if stack contains item
  • scan.contains(str, substr, start=0)true if str contains substr

Support

Selector queries use querySelectorAll where available or else degrade to getElementsByTagName.

Developers

Contribute by making edits in /src or reporting issues.

$ npm install
$ grunt test

Fund

Tip the developer =)

License

MIT