CSSwhat
a CSS selector parser
Example
'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