CSS-like element selector, that finds elements matching a query.
|
Pattern
|
Matches
|
Example
|
*
|
any element
|
*
|
E
|
an element of type E
|
h1
|
ns|E
|
an element of type E in the namespace ns
|
fb|name finds <fb:name> elements
|
E#id
|
an Element with attribute ID of "id"
|
div#wrap, #logo
|
E.class
|
an Element with a class name of "class"
|
div.left, .result
|
E[attr]
|
an Element with the attribute named "attr"
|
a[href], [title]
|
E[^attrPrefix]
|
an Element with an attribute name starting with "attrPrefix". Use to find elements with HTML5 datasets
|
[^data-], div[^data-]
|
E[attr=val]
|
an Element with the attribute named "attr" and value equal to "val"
|
img[width=500], a[rel=nofollow]
|
E[attr^=valPrefix]
|
an Element with the attribute named "attr" and value starting with "valPrefix"
|
a[href^=http:]
|
E[attr$=valSuffix]
|
an Element with the attribute named "attr" and value ending with "valSuffix"
|
img[src$=.png]
|
E[attr*=valContaining]
|
an Element with the attribute named "attr" and value containing "valContaining"
|
a[href*=/search/]
|
E[attr~=regex]
|
an Element with the attribute named "attr" and value matching the regular expression
|
img[src~=(?i)\\.(png|jpe?g)]
|
|
|
The above may be combined in any order
|
div.header[title]
|
|
|
Combinators
|
E F
|
an F element descended from an E element
|
div a, .logo h1
|
E > F
|
an F child of E
|
ol > li
|
E + F
|
an F element immediately preceded by sibling E
|
li + li, div.head + div
|
E ~ F
|
an F element preceded by sibling E
|
h1 ~ p
|
E, F, G
|
any matching element E, F, or G
|
a[href], div, h3
|
|
|
Pseudo selectors
|
E:lt(n)
|
an Element whose sibling index is less than n
|
td:lt(3) finds the first 2 cells of each row
|
E:gt(n)
|
an Element whose sibling index is greater than n
|
td:gt(1) finds cells after skipping the first two
|
E:eq(n)
|
an Element whose sibling index is equal to n
|
td:eq(0) finds the first cell of each row
|
E:has(selector)
|
an Element that contains at least one element matching the selector
|
div:has(p) finds divs that contain p elements
|
E:contains(text)
|
an Element that contains the specified text. The search is case insensitive. The text may appear in the found Element, or any of its descendants.
|
p:contains(jsoup) finds p elements containing the text "jsoup".
|
E:matches(regex)
|
an Element whose text matches the specified regular expression. The text may appear in the found Element, or any of its descendants.
|
td:matches(\\d+) finds table cells containing digits. div:matches((?i)login) finds divs containing the text, case insensitively.
|
E:containsOwn(text)
|
an Element that directly contains the specified text. The search is case insensitive. The text must appear in the found Element, not any of its descendants.
|
p:containsOwn(jsoup) finds p elements with own text "jsoup".
|
E:matchesOwn(regex)
|
an Element whose own text matches the specified regular expression. The text must appear in the found Element, not any of its descendants.
|
td:matchesOwn(\\d+) finds table cells directly containing digits. div:matchesOwn((?i)login) finds divs containing the text, case insensitively.
|