Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ryanve/scan
querySelectorAll selector engine
https://github.com/ryanve/scan
javascript module selector-engine
Last synced: about 1 month ago
JSON representation
querySelectorAll selector engine
- Host: GitHub
- URL: https://github.com/ryanve/scan
- Owner: ryanve
- Created: 2013-04-09T12:08:13.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2014-10-07T04:22:55.000Z (about 10 years ago)
- Last Synced: 2024-09-18T05:58:11.587Z (about 2 months ago)
- Topics: javascript, module, selector-engine
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/scan
- Size: 492 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# scan
#### standalonequerySelectorAll
selector engine with [jQuery](http://jquery.com)-like interface```sh
$ npm install scan --save
```### Basic usage
```js
var scan = require('scan')
scan('.example').find('a').not('[href^="#"]')
```## API ([0.9](../../releases))
-
scan()
instances are array-like and inherit fromscan.prototype
andArray.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(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
Selector queries use [`querySelectorAll` where available](http://caniuse.com/#feat=queryselector) or else degrade to [`getElementsByTagName`](https://developer.mozilla.org/en-US/docs/Web/API/element.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](http://www.w3.org/TR/CSS2/selector.html#pattern-matching) work in IE8+, FF3.5+, Opera 10+, and [all other browsers](http://caniuse.com/css-sel2)
- [CSS3+ selectors](http://www.w3.org/TR/css3-selectors/#selectors) work in IE9+, FF3.5+, Opera 10+, and [all other browsers](http://caniuse.com/css-sel3)
## Developers
Contribute by making edits in [`/src`](./src) or reporting [issues](../../issues).
```sh
$ npm install
$ grunt test
```
## Fund
[Tip the developer](https://www.gittip.com/ryanve/) =)
## License
MIT