Web Alert Documentation

Web Alert Selector

Web Alert is able to look on just a small part of a webpage. This is accomplished with its selector which supports a syntax similar to jQuery selector or CSS selector.

Simple Selectors

The table below shows all supported simple selectors. These can be combined in any order.

Pattern Matches Example
* Any element *
tag Elements with the given tag name div
ns|E Elements of type E in the namespace ns fb|name finds elements
#id Elements with attribute ID of “id” div#wrap, #logo
.class Elements with a class name of “class” div.left, .result
[attr] Elements with an attribute named “attr” (with any value) a[href], [title]
[^attrPrefix] Elements with an attribute name starting with “attrPrefix”. Use to find elements with HTML5 datasets [^data-], div[^data-]
[attr=val] Elements with an attribute named “attr”, and value equal to “val” img[width=500], a[rel=nofollow]
[attr=”val”] Elements with an attribute named “attr”, and value equal to “val” span[hello=”Cleveland”]
[attr^=valPrefix] Elements with an attribute named “attr”, and value starting with “valPrefix” a[href^=http:]
[attr$=valSuffix] Elements with an attribute named “attr”, and value ending with “valSuffix” img[src$=.png]
[attr*=valContaining] Elements with an attribute named “attr”, and value containing “valContaining” a[href*=/search/]
[attr~=regex] Elements with an attribute named “attr”, and value matching the regular expression img[src~=(?i)\\.(png|jpe?g)]
Combinations
Pattern Matches Example
E F An F element descended from an E element div a, .logo h1
E > F An F direct 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 All matching elements E, F, or G a[href], div, h3
Pseudo Selectors

The pseudo selectors from the table below can be combined in any order and with other selectors.

Pattern Matches Example
:lt(n) Elements whose sibling index is less than n td:lt(3) finds the first 2 cells of each row
:gt(n) Elements whose sibling index is greater than n td:gt(1) finds cells after skipping the first two
:eq(n) Elements whose sibling index is equal to n td:eq(0) finds the first cell of each row
:has(selector) Elements that contains at least one element matching the selector div:has(p) finds divs that contain p elements
:not(selector) Elements that do not match the selector. div:not(.logo) finds all divs that do not have the “logo” class.
div:not(:has(div)) finds divs that do not contain divs.
:contains(text) Elements 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(webalert) finds p elements containing the text “webalert”.
:matches(regex) Elements 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.
:containsOwn(text) Elements that directly contain the specified text. The search is case insensitive. The text must appear in the found element, not any of its descendants. p:containsOwn(webalert) finds p elements with own text “webalert”.
:matchesOwn(regex) Elements 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.
Structural pseudo selectors
Pattern Matches Example
:root The element that is the root of the document. In HTML, this is the html element :root
:nth-child(an+b) Elements that have an+b-1 siblings before it in the document tree, for any positive integer or zero value of n, and has a parent element. For values of a and b greater than zero, this effectively divides the element’s children into groups of a elements (the last group taking the remainder), and selecting the bth element of each group. For example, this allows the selectors to address every other row in a table, and could be used to alternate the color of paragraph text in a cycle of four. The a and b values must be integers (positive, negative, or zero). The index of the first child of an element is 1.In addition to this, :nth-child() can take odd and even as arguments instead. odd has the same signification as 2n+1, and even has the same signification as 2n. tr:nth-child(2n+1) finds every odd row of a table.:nth-child(10n-1) the 9th, 19th, 29th, etc, element.li:nth-child(5) the 5h li
:nth-last-child(an+b) Elements that have an+b-1 siblings after it in the document tree. Otherwise like :nth-child() tr:nth-last-child(-n+2) the last two rows of a table
:nth-of-type(an+b) Pseudo-class notation represents an element that has an+b-1 siblings with the same expanded element name before it in the document tree, for any zero or positive integer value of n, and has a parent element img:nth-of-type(2n+1)
:nth-last-of-type(an+b) Pseudo-class notation represents an element that has an+b-1 siblings with the same expanded element name after it in the document tree, for any zero or positive integer value of n, and has a parent element img:nth-last-of-type(2n+1)
:first-child Elements that are the first child of some other element. div > p:first-child
:last-child Elements that are the last child of some other element. ol > li:last-child
:first-of-type Elements that are the first sibling of its type in the list of children of its parent element dl dt:first-of-type
:last-of-type Elements that are the last sibling of its type in the list of children of its parent element tr > td:last-of-type
:only-child Elements that have a parent element and whose parent element hasve no other element children
:only-of-type An element that has a parent element and whose parent element has no other element children with the same expanded element name
:empty Elements that have no children at all

Web Alert Date and Time Patterns

Web Alert is able to interpret the selected elements as date and/or time. The supported formats are specified by date and time pattern strings. Within date and time pattern strings, unquoted letters from ‘A’ to ‘Z’ and from ‘a’ to ‘z’ are interpreted as pattern letters representing the components of a date or time string. Text can be quoted using single quotes (‘) to avoid interpretation. ” ‘ ‘ ” represents a single quote. All other characters are not interpreted; they’re simply copied into the output string during formatting or matched against the input string during parsing.

The following pattern letters are defined (all other characters from ‘A’ to ‘Z’ and from ‘a’ to ‘z’ are reserved):

Letter Date or Time Component Presentation Examples
G Era designator Text AD
y Year Year 1996; 96
Y Week year Year 2009; 09
M Month in year Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day name in week Text Tuesday; Tue
u Day number of week (1 = Monday, …, 7 = Sunday) Number 1
a Am/pm marker Text PM
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in am/pm (0-11) Number 0
h Hour in am/pm (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800
X Time zone ISO 8601 time zone -08; -0800; -08:00

Pattern letters are usually repeated, as their number determines the exact presentation:

  • Text: If the number of pattern letters is 4 or more, the full form is used; otherwise a short or abbreviated form is used if available.
  • Number: The number of pattern letters is the minimum number of digits, and shorter numbers are zero-padded to this amount.
  • Year: If the number of pattern letters is 2, the year is truncated to 2 digits; otherwise it is interpreted as a number.
  • Month: If the number of pattern letters is 3 or more, the month is interpreted as text; otherwise, it is interpreted as a number.
  • General time zone
  • RFC 822 time zone
  • ISO 8601 Time zone

Examples

The following examples show how date and time patterns are interpreted in the U.S. locale. The given date and time are 2001-07-04 12:08:56 local time in the U.S. Pacific Time time zone.

Date and Time Pattern Result
“yyyy.MM.dd G ‘at’ HH:mm:ss z” 2001.07.04 AD at 12:08:56 PDT
“EEE, MMM d, ”yy” Wed, Jul 4, ’01
“h:mm a” 12:08 PM
“hh ‘o”clock’ a, zzzz” 12 o’clock PM, Pacific Daylight Time
“K:mm a, z” 0:08 PM, PDT
“yyyyy.MMMMM.dd GGG hh:mm aaa” 02001.July.04 AD 12:08 PM
“EEE, d MMM yyyy HH:mm:ss Z” Wed, 4 Jul 2001 12:08:56 -0700
“yyMMddHHmmssZ” 010704120856-0700
“yyyy-MM-dd’T’HH:mm:ss.SSSZ” 2001-07-04T12:08:56.235-0700
“yyyy-MM-dd’T’HH:mm:ss.SSSXXX” 2001-07-04T12:08:56.235-07:00
“YYYY-‘W’ww-u” 2001-W27-3