back to Overview

.trav()

Traverses each DOM node in the list using the given property; creates a new list that includes each visited node, optionally filtered by the given selector.
Web module only.

Syntax Variants

list.trav(property)
list.trav(property, selector)
list.trav(property, selector, maxDepth)
list.trav(property, maxDepth)
list.trav(property, filterFunc)
list.trav(property, filterFunc, maxDepth)

Parameters

selector (optional)
any selector valid for $(), including CSS selectors and lists.
Selectors are optimized for '*', '.classname', 'tagname' and 'tagname.classname'. The performance for other selectors is relative to the number of matches for the selector in the document. Default is '*', which includes all elements (but no other nodes such as text nodes).
filterFunc
a function(node) returning true for those nodes that match.
maxDepth (optional)
the maximum number of steps to traverse. Defaults to unlimited.
(return value)
the new list containing all visited nodes. Nodes of the original list are not included, unless they have been visited when traversing another node. Duplicate nodes will be automatically removed.

Description

Traverses each DOM node in the list using the given property; creates a new list that includes each visited node, optionally filtered by the given selector.

trav() traverses the DOM tree for each list element until it finds a null. All visited nodes that match the given selector are added to the result list. If no selector is given, only elements will be added. Duplicates will be automatically be removed from the resulting list.

Instead of the selector, you can also specify a function that evaluates whether an element matches.

DOM provides the following properties for traveral:

firstChildContains the first child.
firstElementChildContains the first element (not in IE < 9).
lastChildContains the last child element.
lastElementChildContains the last child element (not in IE < 9).
nextElementSiblingContains the element that follows the current node (not in IE < 9).
nextSiblingContains the node that follows the current node (see also next() ).
parentNodeContains the node's parent (see also up() ).
previousElementSiblingContains the element that precedes the current node (not in IE < 9).
previousSiblingContains the node that precedes the current node.

Example

Returns a list of all parent nodes, direct and indirect:

var parents = $('.myElements').trav('parentNode');

Example

Returns a list of all direct siblings of the original list:

var parents = $('.sibs').trav('nextSibling', '*', 1);

Example

Returns a list of all parent nodes, direct and indirect, that have the class 'specialParent':

var parents = $('.myElements').trav('parentNode', '.specialParent');

Example

Returns a list of all direct parent nodes that are tables and have the class 'specialParent':

var parents = $('.myElements').trav('parentNode', 'table.specialParent', 1);

See also..

  • up() finds exactly one parent element that matches a selector.
  • next() finds one or more siblings that match a selector.

Comments

comments powered by Disqus

back to Overview

Functions