| # css-what [](http://travis-ci.org/fb55/css-what) |
| |
| a CSS selector parser |
| |
| ## Example |
| |
| ```js |
| require('css-what')('foo[bar]:baz') |
| |
| ~> [ [ { type: 'tag', name: 'foo' }, |
| { type: 'attribute', |
| name: 'bar', |
| action: 'exists', |
| value: '', |
| ignoreCase: false }, |
| { type: 'pseudo', |
| name: 'baz', |
| data: null } ] ] |
| ``` |
| |
| ## API |
| |
| __`CSSwhat(selector, options)` - Parses `str`, with the passed `options`.__ |
| |
| The function returns a two-dimensional array. The first array represents selectors separated by commas (eg. `sub1, sub2`), the second contains the relevant tokens for that selector. Possible token types are: |
| |
| name | attributes | example | output |
| ---- | ---------- | ------- | ------ |
| `tag`| `name` | `div` | `{ type: 'tag', name: 'div' }` |
| `universal`| - | `*` | `{ type: 'universal' }` |
| `pseudo`| `name`, `data`|`:name(data)`| `{ type: 'pseudo', name: 'name', data: 'data' }` |
| `pseudo`| `name`, `data`|`:name`| `{ type: 'pseudo', name: 'name', data: null }` |
| `attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr]`|`{ type: 'attribute', name: 'attr', action: 'exists', value: '', ignoreCase: false }` |
| `attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr=val]`|`{ type: 'attribute', name: 'attr', action: 'equals', value: 'val', ignoreCase: false }` |
| `attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr^=val]`|`{ type: 'attribute', name: 'attr', action: 'start', value: 'val', ignoreCase: false }` |
| `attribute`|`name`, `action`, `value`, `ignoreCase`|`[attr$=val]`|`{ type: 'attribute', name: 'attr', action: 'end', value: 'val', ignoreCase: false }` |
| |
| //TODO complete list |
| |
| __Options:__ |
| |
| - `xmlMode`: When enabled, tag names will be case-sensitive (meaning they won't be lowercased). |
| |
| --- |
| |
| License: BSD-like |