From 334d9c73c2f74679a93b1d7b3e39b614f6444faa Mon Sep 17 00:00:00 2001 From: Ulrich-Matthias Schäfer Date: Mon, 12 Nov 2018 13:59:07 +0100 Subject: reworked parents so that it is useful now, changelog --- src/elements/Element.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/elements/Element.js b/src/elements/Element.js index 03b5f07..3b96bf4 100644 --- a/src/elements/Element.js +++ b/src/elements/Element.js @@ -1,7 +1,9 @@ import { getClass, makeInstance, register, root } from '../utils/adopter.js' +import { globals } from '../utils/window.js' import { proportionalSize } from '../utils/utils.js' import { reference } from '../modules/core/regex.js' import Dom from './Dom.js' +import List from '../types/List.js' import SVGNumber from '../types/SVGNumber.js' const Doc = getClass(root) @@ -75,16 +77,18 @@ export default class Element extends Dom { } // return array of all ancestors of given type up to the root svg - parents (type) { - let parents = [] + parents (until = globals.document) { + until = makeInstance(until) + let parents = new List() let parent = this - do { - parent = parent.parent(type) - if (!parent || parent instanceof getClass('HtmlNode')) break - + while ( + (parent = parent.parent()) && + parent.node !== until.node && + parent.node !== globals.document + ) { parents.push(parent) - } while (parent.parent) + } return parents } -- cgit v1.2.3