libsui $Query class to support multiple elements in constructor
This commit is contained in:
parent
776d22a443
commit
3074a8e432
2 changed files with 76 additions and 62 deletions
120
data/bindata.go
120
data/bindata.go
File diff suppressed because one or more lines are too long
|
|
@ -19,19 +19,25 @@ function $Query(selector: string | Element): __Query {
|
|||
}
|
||||
|
||||
class __Query {
|
||||
selector: string | Element | undefined = "";
|
||||
selector: string | Element | NodeListOf<Element> | undefined = "";
|
||||
elements: NodeListOf<Element> | null = null;
|
||||
element: Element | null = null;
|
||||
constructor(selector: string | Element) {
|
||||
constructor(selector: string | Element | NodeListOf<Element>) {
|
||||
if (typeof selector === "string") {
|
||||
this.selector = selector;
|
||||
this.elements = document.querySelectorAll(selector);
|
||||
if (this.elements.length > 0) {
|
||||
this.element = this.elements[0];
|
||||
}
|
||||
} else if (selector instanceof NodeList) {
|
||||
this.elements = selector;
|
||||
if (this.elements.length > 0) {
|
||||
this.element = this.elements[0];
|
||||
}
|
||||
} else {
|
||||
this.element = selector;
|
||||
}
|
||||
|
||||
this.selector = selector;
|
||||
}
|
||||
|
||||
|
|
@ -51,6 +57,14 @@ class __Query {
|
|||
return null;
|
||||
}
|
||||
|
||||
findAll(selector: string): __Query | null {
|
||||
const elms = this.element?.querySelectorAll(selector);
|
||||
if (elms) {
|
||||
return new __Query(elms);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
closest(selector: string): __Query | null {
|
||||
const elm = this.element?.closest(selector);
|
||||
if (elm) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue