scan

querySelectorAll selector engine

scan

standalone querySelectorAll selector engine with jQuery-like interface

$ npm install scan --save
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(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

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

  • 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

  • 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

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

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

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

Contribute by making edits in /src or reporting issues.

$ npm install
$ grunt test

Tip the developer =)

MIT