standalone querySelectorAll selector engine with jQuery-like interface
$ npm install scan --savevar scan = require('scan')
scan('.example').find('a').not('[href^="#"]')API (0.9)
-
scan()instances are array-like and inherit fromscan.prototypeandArray.prototype -
scan()methods chain intuitively or are callable viascan.prototype[method].call(array) - Methods are generally compatible with jQuery methods of the same name
scan(selector)→ elements that match selectorscan(selector, node|nodes)→ elements that match selector from node or any nodesscan(node|nodes)→ nodes wrapped inscaninstance
scan(query).find(selector)→ descendants that match selectorscan(query).find(element|elements)→ elements that descend from queryscan(stack).find(fn, scope?)→ the first value to passfn.call(scope, value, i, stack)
scan(query).filter(nodes, selector)→ stack filtered by selectorscan(query).filter(fn)→ stack filtered byfn.call(element, i)scan(query).filter(element|elements)→ stack filtered by one or more elementsscan(array).filter(values)→ the intersection of 2 arrays
scan(query).filter(selector)→nodesfiltered againstselectorscan(query).not(fn)→ stack filtered againstfn.call(element, i)scan(query).not(element|elements)→ stack filtered against one or more elementsscan(array).not(values)→ the difference of 2 arrays
scan.find(selector, context?)→ array of elements that match selectorscan.find(stack, fn, scope?)→ the first value to passfn.call(scope, value, i, stack)
scan.matches(element, selector)→trueif element matches selector
scan.contains(node, element)→trueif node contains elementscan.contains(stack, item, start=0)→trueif stack contains itemscan.contains(str, substr, start=0)→trueif str contains substr
Selector queries use querySelectorAll where available or else degrade to getElementsByTagName.
- Lone tag selectors like
'p'work in IE5.5+ and all other browsers - The universal selector
'*'works in IE6+ and all other browsers - CSS2+ selectors work in IE8+, FF3.5+, Opera 10+, and all other browsers
- CSS3+ selectors work in IE9+, FF3.5+, Opera 10+, and all other browsers
Contribute by making edits in /src or reporting issues.
$ npm install
$ grunt testMIT