Slick
Slick is a standalone selector engine that is totally slick.
Slick is split in 2 components: the Finder and the Parser. The Finder's job is to find nodes on a webpage, the Parser's job is to create a javascript object representation of any css selector.
Slick allows you to:
* Create your own custom pseudo-classes
* Use the Parser by itself.
* Find nodes in XML documents.
---
The Finder
Find nodes in the DOM
$3
Search this context for any nodes that match this selector.
Expects:
* selector: String or SelectorObject
* (
optional) context: document or node or array of documents or nodes
* (
optional) append: Array or Object with a push method
Returns: append argument or Array of 0 or more nodes
slick.search("#foo > bar.baz") → [
, , ]
slick.search("li > a", [, ]) → [, , ]
slick.search("#foo > bar.baz", document, []) → [, , ]
$3
Find the first node in document that matches selector or null if none are found.
Expects:
* selector: String or SelectorObject
* (optional) context: document or node or array of documents or nodes
Returns: Element or null
slick.find("#foo > bar.baz") →
slick.find("#does-not-exist", node) → null
$3
Does this node match this selector?
Expects:
* node
* node, String or SelectorObject
Returns: true or false
slick.matches(, "div.rocks") → true
slick.matches(
, "div.rocks") → false
slick.matches(
,
) → false
$3
Does this context contain this node? Is the context a parent of this node?
Expects:
* context: document or node
* node: node
Returns: true or false
slick.contains(
, - ) → true
slick.contains(, ) → false
---
The Parser
Parse a CSS selector string into a JavaScript object
$3
Parse a CSS Selector String into a Selector Object.
Expects: String
Returns: SelectorObject
slick.parse("#foo > bar.baz") → SelectorObject
$3
$3
[[
{ "combinator":" ", "tag":"*", "id":"foo" },
{ "combinator":">", "tag":"bar", "classList": ["baz"], "classes": [{"value":"baz", "match": RegExp }]}
]]
$3
[
[{ "combinator":" ", "tag": "h1" }],
[{ "combinator":" ", "tag": "h2" }],
[{ "combinator":" ", "tag": "ul" }, { "combinator": ">", "tag": "li" }],
[{ "combinator":" ", "tag": "*", "classList": ["things"], "classes": [{"value": "things", "match": RegExp }] }]
]