0.4.7 • Published 11 years ago
CSSwhat v0.4.7
a CSS selector parser
##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
