123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- goog.provide('goog.dom.iter.AncestorIterator');
- goog.provide('goog.dom.iter.ChildIterator');
- goog.provide('goog.dom.iter.SiblingIterator');
- goog.require('goog.iter.Iterator');
- goog.require('goog.iter.StopIteration');
- goog.dom.iter.SiblingIterator = function(node, opt_includeNode, opt_reverse) {
-
- this.node_ = node;
-
- this.reverse_ = !!opt_reverse;
- if (node && !opt_includeNode) {
- this.next();
- }
- };
- goog.inherits(goog.dom.iter.SiblingIterator, goog.iter.Iterator);
- goog.dom.iter.SiblingIterator.prototype.next = function() {
- var node = this.node_;
- if (!node) {
- throw goog.iter.StopIteration;
- }
- this.node_ = this.reverse_ ? node.previousSibling : node.nextSibling;
- return node;
- };
- goog.dom.iter.ChildIterator = function(element, opt_reverse, opt_startIndex) {
- if (!goog.isDef(opt_startIndex)) {
- opt_startIndex = opt_reverse && element.childNodes.length ?
- element.childNodes.length - 1 :
- 0;
- }
- goog.dom.iter.SiblingIterator.call(
- this, element.childNodes[opt_startIndex], true, opt_reverse);
- };
- goog.inherits(goog.dom.iter.ChildIterator, goog.dom.iter.SiblingIterator);
- goog.dom.iter.AncestorIterator = function(node, opt_includeNode) {
-
- this.node_ = node;
- if (node && !opt_includeNode) {
- this.next();
- }
- };
- goog.inherits(goog.dom.iter.AncestorIterator, goog.iter.Iterator);
- goog.dom.iter.AncestorIterator.prototype.next = function() {
- var node = this.node_;
- if (!node) {
- throw goog.iter.StopIteration;
- }
- this.node_ = node.parentNode;
- return node;
- };
|