Class Ext.DomQuery
Package: | Ext |
Class: | DomQuery |
Extends: | Object |
Defined In: | DomQuery.js |
*
Provides high performance selector/xpath processing by compiling queries into reusable functions. New pseudo classes and matchers can be plugged. It works on HTML and XML documents (if a content node is passed in).
DomQuery supports most of the CSS3 selectors spec, along with some custom selectors and basic XPath.
All selectors, attribute filters and pseudos below can be combined infinitely in any order. For example "div.foo:nth-child(odd)[@foo=bar].bar:first" would be a perfectly valid selector. Node filters are processed in the order in which they appear, which allows you to optimize your queries for your document structure.
Element Selectors:
- * any element
- E an element with the tag E
- E F All descendent elements of E that have the tag F
- E > F or E/F all direct children elements of E that have the tag F
- E + F all elements with the tag F that are immediately preceded by an element with the tag E
- E ~ F all elements with the tag F that are preceded by a sibling element with the tag E
Attribute Selectors:
The use of @ and quotes are optional. For example, div[@foo='bar'] is also a valid attribute selector.
- E[foo] has an attribute "foo"
- E[foo=bar] has an attribute "foo" that equals "bar"
- E[foo^=bar] has an attribute "foo" that starts with "bar"
- E[foo$=bar] has an attribute "foo" that ends with "bar"
- E[foo*=bar] has an attribute "foo" that contains the substring "bar"
- E[foo%=2] has an attribute "foo" that is evenly divisible by 2
- E[foo!=bar] has an attribute "foo" that does not equal "bar"
Pseudo Classes:
- E:first-child E is the first child of its parent
- E:last-child E is the last child of its parent
- E:nth-child(n) E is the nth child of its parent (1 based as per the spec)
- E:nth-child(odd) E is an odd child of its parent
- E:nth-child(even) E is an even child of its parent
- E:only-child E is the only child of its parent
- E:checked E is an element that is has a checked attribute that is true (e.g. a radio or checkbox)
- E:first the first E in the resultset
- E:last the last E in the resultset
- E:nth(n) the nth E in the resultset (1 based)
- E:odd shortcut for :nth-child(odd)
- E:even shortcut for :nth-child(even)
- E:contains(foo) E's innerHTML contains the substring "foo"
- E:nodeValue(foo) E contains a textNode with a nodeValue that equals "foo"
- E:not(S) an E element that does not match simple selector S
- E:has(S) an E element that has a descendent that matches simple selector S
- E:next(S) an E element whose next sibling matches simple selector S
- E:prev(S) an E element whose previous sibling matches simple selector S
CSS Value Selectors:
- E{display=none} css value "display" that equals "none"
- E{display^=none} css value "display" that starts with "none"
- E{display$=none} css value "display" that ends with "none"
- E{display*=none} css value "display" that contains the substring "none"
- E{display%=2} css value "display" that is evenly divisible by 2
- E{display!=none} css value "display" that does not equal "none"
This class is a singleton and cannot be created directly.
Properties
-
Methods
-
Events
Public Properties
|
matchers : Object |
DomQuery |
Collection of matching regular expressions and code snippets. |
|
operators : Object |
DomQuery |
Collection of operator comparison functions. The default operators are =, !=, ^=, $=, *= and %=.
New operators can be... |
|
pseudos : Object |
DomQuery |
Collection of "pseudo class" processors. Each processor is passed the current nodeset (array)
and the argument (if an... |
Public Methods
|
compile( String selector , [String type ] ) : Function |
DomQuery |
Compiles a selector/xpath query into a reusable function. The returned function
takes one parameter "root" (optional)... |
|
filter( Array el , String selector , Boolean nonMatches ) : Array |
DomQuery |
Filters an array of elements to only include matches of a simple selector (e.g. div.some-class or span:first-child) |
|
is( String/HTMLElement/Array el , String selector ) : Boolean |
DomQuery |
Returns true if the passed element(s) match the passed simple selector (e.g. div.some-class or span:first-child) |
|
select( String selector , [Node root ] ) : Array |
DomQuery |
Selects a group of elements. |
|
selectNode( String selector , [Node root ] ) : Element |
DomQuery |
Selects a single element. |
|
selectNumber( String selector , [Node root ], Number defaultValue ) : Number |
DomQuery |
Selects the value of a node, parsing integers and floats. |
|
selectValue( String selector , [Node root ], String defaultValue ) : void |
DomQuery |
Selects the value of a node, optionally replacing null with the defaultValue. |
Public Events
This class has no public events.
Property Details
matchers
public Object matchers
Collection of matching regular expressions and code snippets.
This property is defined by DomQuery.
operators
public Object operators
Collection of operator comparison functions. The default operators are =, !=, ^=, $=, *= and %=.
New operators can be added as long as the match the format c= where c is any character other than space, > <.
This property is defined by DomQuery.
pseudos
public Object pseudos
Collection of "pseudo class" processors. Each processor is passed the current nodeset (array)
and the argument (if any) supplied in the selector.
This property is defined by DomQuery.
Method Details
compile
public function compile( String selector
, [String type
] )
Compiles a selector/xpath query into a reusable function. The returned function
takes one parameter "root" (optional), which is the context node from where the query should start.
This method is defined by DomQuery.
filter
public function filter( Array el
, String selector
, Boolean nonMatches
)
Filters an array of elements to only include matches of a simple selector (e.g. div.some-class or span:first-child)
Parameters:
el
: ArrayAn array of elements to filter
selector
: StringThe simple selector to test
nonMatches
: BooleanIf true, it returns the elements that DON'T match
the selector instead of the ones that match
Returns:
This method is defined by DomQuery.
is
public function is( String/HTMLElement/Array el
, String selector
)
Returns true if the passed element(s) match the passed simple selector (e.g. div.some-class or span:first-child)
This method is defined by DomQuery.
select
public function select( String selector
, [Node root
] )
Selects a group of elements.
This method is defined by DomQuery.
selectNode
public function selectNode( String selector
, [Node root
] )
Selects a single element.
This method is defined by DomQuery.
selectNumber
public function selectNumber( String selector
, [Node root
], Number defaultValue
)
Selects the value of a node, parsing integers and floats.
This method is defined by DomQuery.
selectValue
public function selectValue( String selector
, [Node root
], String defaultValue
)
Selects the value of a node, optionally replacing null with the defaultValue.
This method is defined by DomQuery.