diff --git a/packages/dom-manager/src/DOMElement.ts b/packages/dom-manager/src/DOMElement.ts index 13098c6..5a1549f 100644 --- a/packages/dom-manager/src/DOMElement.ts +++ b/packages/dom-manager/src/DOMElement.ts @@ -18,9 +18,9 @@ export default class DOMElement { } - public static get(query: string | T, source?: HTMLElement): DOMElement | undefined { + public static get(query: string | T, source?: HTMLElement | DOMElement): DOMElement | undefined { if (!(query instanceof HTMLElement)) { - const tmp = (source || document).querySelector(query) + const tmp = (source instanceof DOMElement ? source.item : source || document).querySelector(query) if (!tmp) { return undefined } diff --git a/packages/dom-manager/src/DOMFleetManager.ts b/packages/dom-manager/src/DOMFleetManager.ts index ff29cfa..c48b661 100644 --- a/packages/dom-manager/src/DOMFleetManager.ts +++ b/packages/dom-manager/src/DOMFleetManager.ts @@ -5,11 +5,15 @@ export default class DOMFleetManager { public constructor( private query: string, - private source?: HTMLElement + private source?: HTMLElement | DOMElement ) { this.refresh() } + public last() { + return this.items[this.items.length - 1] + } + public each(fn: (item: DOMElement, index: number) => void) { this.items.forEach((el, index) => fn(el, index)) } @@ -24,7 +28,7 @@ export default class DOMFleetManager { public refresh() { this.items = [] - ;(this.source || document).querySelectorAll(this.query).forEach((item) => { + ;(this.source instanceof DOMElement ? this.source.item : this.source || document).querySelectorAll(this.query).forEach((item) => { const element = DOMElement.get(item) if (!element) { return