@whitesev/domutils 1.3.7 → 1.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -184,7 +184,7 @@ declare class DOMUtils extends DOMUtilsEvent {
184
184
  * DOMUtils.val(document.querySelector("input.xx"),true)
185
185
  * DOMUtils.val("input.xx",true)
186
186
  * */
187
- val(element: HTMLInputElement | HTMLTextAreaElement | string | (HTMLInputElement | HTMLTextAreaElement)[] | NodeListOf<HTMLInputElement | HTMLTextAreaElement>, value: string | boolean | number): void;
187
+ val(element: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | string | (HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement)[] | NodeListOf<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>, value: string | boolean | number): void;
188
188
  /**
189
189
  * 获取value属性值
190
190
  * @param element 目标元素
@@ -192,7 +192,7 @@ declare class DOMUtils extends DOMUtilsEvent {
192
192
  * // 获取元素textarea的值
193
193
  * DOMUtils.val(document.querySelector("textarea.xx"))
194
194
  * */
195
- val(element: HTMLInputElement | HTMLTextAreaElement | string | (HTMLInputElement | HTMLTextAreaElement)[] | NodeListOf<HTMLInputElement | HTMLTextAreaElement>): string;
195
+ val(element: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | string | (HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement)[] | NodeListOf<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>): string;
196
196
  /**
197
197
  * 获取value属性值
198
198
  * @param element 目标元素
@@ -201,7 +201,7 @@ declare class DOMUtils extends DOMUtilsEvent {
201
201
  * DOMUtils.val(document.querySelector("input.xx"))
202
202
  * DOMUtils.val("input.xx")
203
203
  * */
204
- val(element: HTMLInputElement | HTMLTextAreaElement | (HTMLInputElement | HTMLTextAreaElement)[] | NodeListOf<HTMLInputElement | HTMLTextAreaElement>): boolean | string;
204
+ val(element: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | (HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement)[] | NodeListOf<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>): boolean | string;
205
205
  /**
206
206
  * 获取元素的属性值
207
207
  * @param element 目标元素
@@ -275,6 +275,12 @@ declare class DOMUtils extends DOMUtilsEvent {
275
275
  * DOMUtils.addClass("a.xx","_vue_")
276
276
  * */
277
277
  addClass(element: DOMUtilsTargetElementType, className: string | string[]): void;
278
+ /**
279
+ * 判断元素是否存在className
280
+ * @param element
281
+ * @param className
282
+ */
283
+ hasClass(element: DOMUtilsTargetElementType, className: string | string[]): boolean;
278
284
  /**
279
285
  * 函数在元素内部末尾添加子元素或HTML字符串
280
286
  * @param element 目标元素
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whitesev/domutils",
3
- "version": "1.3.7",
3
+ "version": "1.3.8",
4
4
  "description": "使用js重新对jQuery的部分函数进行了仿写",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
package/src/DOMUtils.ts CHANGED
@@ -489,9 +489,10 @@ class DOMUtils extends DOMUtilsEvent {
489
489
  element:
490
490
  | HTMLInputElement
491
491
  | HTMLTextAreaElement
492
+ | HTMLSelectElement
492
493
  | string
493
- | (HTMLInputElement | HTMLTextAreaElement)[]
494
- | NodeListOf<HTMLInputElement | HTMLTextAreaElement>,
494
+ | (HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement)[]
495
+ | NodeListOf<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>,
495
496
  value: string | boolean | number
496
497
  ): void;
497
498
  /**
@@ -505,9 +506,10 @@ class DOMUtils extends DOMUtilsEvent {
505
506
  element:
506
507
  | HTMLInputElement
507
508
  | HTMLTextAreaElement
509
+ | HTMLSelectElement
508
510
  | string
509
- | (HTMLInputElement | HTMLTextAreaElement)[]
510
- | NodeListOf<HTMLInputElement | HTMLTextAreaElement>
511
+ | (HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement)[]
512
+ | NodeListOf<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>
511
513
  ): string;
512
514
  /**
513
515
  * 获取value属性值
@@ -521,16 +523,18 @@ class DOMUtils extends DOMUtilsEvent {
521
523
  element:
522
524
  | HTMLInputElement
523
525
  | HTMLTextAreaElement
524
- | (HTMLInputElement | HTMLTextAreaElement)[]
525
- | NodeListOf<HTMLInputElement | HTMLTextAreaElement>
526
+ | HTMLSelectElement
527
+ | (HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement)[]
528
+ | NodeListOf<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>
526
529
  ): boolean | string;
527
530
  val(
528
531
  element:
529
532
  | HTMLInputElement
530
533
  | HTMLTextAreaElement
534
+ | HTMLSelectElement
531
535
  | string
532
- | (HTMLInputElement | HTMLTextAreaElement)[]
533
- | NodeListOf<HTMLInputElement | HTMLTextAreaElement>,
536
+ | (HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement)[]
537
+ | NodeListOf<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>,
534
538
  value?: string | boolean | number
535
539
  ) {
536
540
  let DOMUtilsContext = this;
@@ -785,6 +789,44 @@ class DOMUtils extends DOMUtilsEvent {
785
789
  element.classList.add(itemClassName);
786
790
  });
787
791
  }
792
+ /**
793
+ * 判断元素是否存在className
794
+ * @param element
795
+ * @param className
796
+ */
797
+ hasClass(
798
+ element: DOMUtilsTargetElementType,
799
+ className: string | string[]
800
+ ): boolean {
801
+ let DOMUtilsContext = this;
802
+ if (typeof element === "string") {
803
+ element = DOMUtilsContext.selectorAll(element);
804
+ }
805
+ if (element == null) {
806
+ return false;
807
+ }
808
+ if (isNodeList(element)) {
809
+ let flag = true;
810
+ for (let index = 0; index < element.length; index++) {
811
+ const $ele = element[index] as HTMLElement;
812
+ flag = flag && DOMUtilsContext.hasClass($ele, className);
813
+ }
814
+ return flag;
815
+ }
816
+ if (!element?.classList) {
817
+ return false;
818
+ }
819
+ if (!Array.isArray(className)) {
820
+ className = className.split(" ");
821
+ }
822
+ for (let index = 0; index < className.length; index++) {
823
+ const item = className[index].trim();
824
+ if (!element.classList.contains(item)) {
825
+ return false;
826
+ }
827
+ }
828
+ return true;
829
+ }
788
830
  /**
789
831
  * 函数在元素内部末尾添加子元素或HTML字符串
790
832
  * @param element 目标元素
@@ -1008,9 +1050,7 @@ class DOMUtils extends DOMUtilsEvent {
1008
1050
  offset(element: HTMLElement | string) {
1009
1051
  let DOMUtilsContext = this;
1010
1052
  if (typeof element === "string") {
1011
- element = DOMUtilsContext.windowApi.document.querySelector(
1012
- element
1013
- ) as HTMLElement;
1053
+ element = DOMUtilsContext.selector(element) as HTMLElement;
1014
1054
  }
1015
1055
  if (element == null) {
1016
1056
  return;
@@ -1053,8 +1093,7 @@ class DOMUtils extends DOMUtilsEvent {
1053
1093
  ) {
1054
1094
  let DOMUtilsContext = this;
1055
1095
  if (typeof element === "string") {
1056
- element =
1057
- DOMUtilsContext.windowApi.document.querySelector<HTMLElement>(element)!;
1096
+ element = DOMUtilsContext.selector<HTMLElement>(element)!;
1058
1097
  }
1059
1098
  if (element == null) {
1060
1099
  return;
@@ -1161,9 +1200,7 @@ class DOMUtils extends DOMUtilsEvent {
1161
1200
  .clientHeight;
1162
1201
  }
1163
1202
  if (typeof element === "string") {
1164
- element = DOMUtilsContext.windowApi.document.querySelector(
1165
- element
1166
- ) as HTMLElement;
1203
+ element = DOMUtilsContext.selector(element) as HTMLElement;
1167
1204
  }
1168
1205
  if (element == null) {
1169
1206
  // @ts-ignore
@@ -1261,9 +1298,7 @@ class DOMUtils extends DOMUtilsEvent {
1261
1298
  return DOMUtilsContext.windowApi.window.innerWidth;
1262
1299
  }
1263
1300
  if (typeof element === "string") {
1264
- element = DOMUtilsContext.windowApi.document.querySelector(
1265
- element
1266
- ) as HTMLElement;
1301
+ element = DOMUtilsContext.selector(element) as HTMLElement;
1267
1302
  }
1268
1303
  if (element == null) {
1269
1304
  // @ts-ignore
@@ -1312,9 +1347,7 @@ class DOMUtils extends DOMUtilsEvent {
1312
1347
  return DOMUtilsContext.windowApi.window.innerHeight;
1313
1348
  }
1314
1349
  if (typeof element === "string") {
1315
- element = DOMUtilsContext.windowApi.document.querySelector(
1316
- element
1317
- ) as HTMLElement;
1350
+ element = DOMUtilsContext.selector(element) as HTMLElement;
1318
1351
  }
1319
1352
  if (element == null) {
1320
1353
  // @ts-ignore
@@ -1469,9 +1502,7 @@ class DOMUtils extends DOMUtilsEvent {
1469
1502
  prev(element: HTMLElement | string) {
1470
1503
  let DOMUtilsContext = this;
1471
1504
  if (typeof element === "string") {
1472
- element = DOMUtilsContext.windowApi.document.querySelector(
1473
- element
1474
- ) as HTMLElement;
1505
+ element = DOMUtilsContext.selector(element) as HTMLElement;
1475
1506
  }
1476
1507
  if (element == null) {
1477
1508
  return;
@@ -1493,9 +1524,7 @@ class DOMUtils extends DOMUtilsEvent {
1493
1524
  next(element: HTMLElement | string) {
1494
1525
  let DOMUtilsContext = this;
1495
1526
  if (typeof element === "string") {
1496
- element = DOMUtilsContext.windowApi.document.querySelector(
1497
- element
1498
- ) as HTMLElement;
1527
+ element = DOMUtilsContext.selector(element) as HTMLElement;
1499
1528
  }
1500
1529
  if (element == null) {
1501
1530
  return;
@@ -1529,9 +1558,7 @@ class DOMUtils extends DOMUtilsEvent {
1529
1558
  siblings(element: HTMLElement | string) {
1530
1559
  let DOMUtilsContext = this;
1531
1560
  if (typeof element === "string") {
1532
- element = DOMUtilsContext.windowApi.document.querySelector(
1533
- element
1534
- ) as HTMLElement;
1561
+ element = DOMUtilsContext.selector(element) as HTMLElement;
1535
1562
  }
1536
1563
  if (element == null) {
1537
1564
  return;
@@ -1576,18 +1603,15 @@ class DOMUtils extends DOMUtilsEvent {
1576
1603
  parent(element: HTMLElement | NodeList | string | HTMLElement[]) {
1577
1604
  let DOMUtilsContext = this;
1578
1605
  if (typeof element === "string") {
1579
- element = DOMUtilsContext.windowApi.document.querySelector(
1580
- element
1581
- ) as HTMLElement;
1606
+ element = DOMUtilsContext.selector<HTMLElement>(element)!;
1582
1607
  }
1583
1608
  if (element == null) {
1584
1609
  return;
1585
1610
  }
1586
- if (element instanceof NodeList || element instanceof Array) {
1587
- element = element as HTMLElement[];
1611
+ if (isNodeList(element)) {
1588
1612
  let resultArray: HTMLElement[] = [];
1589
- element.forEach((eleItem) => {
1590
- resultArray.push(DOMUtilsContext.parent(eleItem));
1613
+ element.forEach(($ele) => {
1614
+ resultArray.push(DOMUtilsContext.parent($ele as HTMLElement));
1591
1615
  });
1592
1616
  return resultArray;
1593
1617
  } else {
@@ -967,9 +967,7 @@ export class DOMUtilsEvent {
967
967
  ) {
968
968
  let DOMUtilsContext = this;
969
969
  if (typeof element === "string") {
970
- element = DOMUtilsContext.windowApi.document.querySelector(
971
- element
972
- ) as HTMLElement;
970
+ element = DOMUtilsContext.selectorAll(element);
973
971
  }
974
972
  if (element == null) {
975
973
  return;
@@ -1086,9 +1084,7 @@ export class DOMUtilsEvent {
1086
1084
  ) {
1087
1085
  let DOMUtilsContext = this;
1088
1086
  if (typeof element === "string") {
1089
- element = DOMUtilsContext.windowApi.document.querySelector(
1090
- element
1091
- ) as HTMLElement;
1087
+ element = DOMUtilsContext.selectorAll(element);
1092
1088
  }
1093
1089
  if (element == null) {
1094
1090
  return;