CSSwhat

a CSS selector parser

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
CSSwhat
21630.4.79 years ago11 years agoMinified + gzip package size for CSSwhat in KB

Readme

CSSwhat Build Status
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