a CSS selector parser
The function returns a two-dimensional array. The first array represents subselects separated by commas (eg.
name | attributes | example | output ---- | ---------- | ------- | ------
//TODO complete list
Options:
License: BSD-like
Example
require('CSSwhat')('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 subselects 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, tagnames will be case-sensitive (ie. the output won't be lowercased).
License: BSD-like