@whitesev/domutils 1.3.5 → 1.3.7

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.
package/dist/index.esm.js CHANGED
@@ -188,7 +188,7 @@ class DOMUtilsEvent {
188
188
  let DOMUtilsContext = this;
189
189
  let args = arguments;
190
190
  if (typeof element === "string") {
191
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
191
+ element = DOMUtilsContext.selectorAll(element);
192
192
  }
193
193
  if (element == null) {
194
194
  return;
@@ -306,7 +306,7 @@ class DOMUtilsEvent {
306
306
  let DOMUtilsContext = this;
307
307
  let args = arguments;
308
308
  if (typeof element === "string") {
309
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
309
+ element = DOMUtilsContext.selectorAll(element);
310
310
  }
311
311
  if (element == null) {
312
312
  return;
@@ -391,7 +391,7 @@ class DOMUtilsEvent {
391
391
  offAll(element, eventType) {
392
392
  let DOMUtilsContext = this;
393
393
  if (typeof element === "string") {
394
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
394
+ element = DOMUtilsContext.selectorAll(element);
395
395
  }
396
396
  if (element == null) {
397
397
  return;
@@ -593,7 +593,7 @@ class DOMUtilsEvent {
593
593
  click(element, handler, details, useDispatchToTriggerEvent) {
594
594
  let DOMUtilsContext = this;
595
595
  if (typeof element === "string") {
596
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
596
+ element = DOMUtilsContext.selectorAll(element);
597
597
  }
598
598
  if (element == null) {
599
599
  return;
@@ -665,7 +665,7 @@ class DOMUtilsEvent {
665
665
  focus(element, handler, details, useDispatchToTriggerEvent) {
666
666
  let DOMUtilsContext = this;
667
667
  if (typeof element === "string") {
668
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
668
+ element = DOMUtilsContext.selectorAll(element);
669
669
  }
670
670
  if (element == null) {
671
671
  return;
@@ -701,7 +701,7 @@ class DOMUtilsEvent {
701
701
  hover(element, handler, option) {
702
702
  let DOMUtilsContext = this;
703
703
  if (typeof element === "string") {
704
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
704
+ element = DOMUtilsContext.selectorAll(element);
705
705
  }
706
706
  if (element == null) {
707
707
  return;
@@ -737,7 +737,7 @@ class DOMUtilsEvent {
737
737
  return;
738
738
  }
739
739
  if (typeof element === "string") {
740
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
740
+ element = DOMUtilsContext.selectorAll(element);
741
741
  }
742
742
  if (isNodeList(element)) {
743
743
  // 设置
@@ -769,7 +769,7 @@ class DOMUtilsEvent {
769
769
  return;
770
770
  }
771
771
  if (typeof element === "string") {
772
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
772
+ element = DOMUtilsContext.selectorAll(element);
773
773
  }
774
774
  if (isNodeList(element)) {
775
775
  // 设置
@@ -801,7 +801,7 @@ class DOMUtilsEvent {
801
801
  return;
802
802
  }
803
803
  if (typeof element === "string") {
804
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
804
+ element = DOMUtilsContext.selectorAll(element);
805
805
  }
806
806
  if (isNodeList(element)) {
807
807
  // 设置
@@ -878,7 +878,7 @@ class DOMUtilsEvent {
878
878
  listenKeyboard(element, eventName = "keypress", callback, options) {
879
879
  let DOMUtilsContext = this;
880
880
  if (typeof element === "string") {
881
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
881
+ element = DOMUtilsContext.selectorAll(element);
882
882
  }
883
883
  let keyboardEventCallBack = function (event) {
884
884
  /** 键名 */
@@ -910,6 +910,47 @@ class DOMUtilsEvent {
910
910
  },
911
911
  };
912
912
  }
913
+ selector(selector) {
914
+ return this.selectorAll(selector)[0];
915
+ }
916
+ selectorAll(selector) {
917
+ const context = this;
918
+ selector = selector.trim();
919
+ if (selector.match(/[^\s]{1}:empty$/gi)) {
920
+ // empty 语法
921
+ selector = selector.replace(/:empty$/gi, "");
922
+ return Array.from(context.windowApi.document.querySelectorAll(selector)).filter(($ele) => {
923
+ return $ele?.innerHTML?.trim() === "";
924
+ });
925
+ }
926
+ else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/gi) ||
927
+ selector.match(/[^\s]{1}:contains\('(.*)'\)$/gi)) {
928
+ // contains 语法
929
+ let textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
930
+ let text = textMatch[2];
931
+ selector = selector.replace(/:contains\(("|')(.*)("|')\)$/gi, "");
932
+ return Array.from(context.windowApi.document.querySelectorAll(selector)).filter(($ele) => {
933
+ // @ts-ignore
934
+ return ($ele?.textContent || $ele?.innerText)?.includes(text);
935
+ });
936
+ }
937
+ else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/gi) ||
938
+ selector.match(/[^\s]{1}:regexp\('(.*)'\)$/gi)) {
939
+ // regexp 语法
940
+ let textMatch = selector.match(/:regexp\(("|')(.*)("|')\)$/i);
941
+ let text = textMatch[2];
942
+ let regexp = new RegExp(text);
943
+ selector = selector.replace(/:regexp\(("|')(.*)("|')\)$/gi, "");
944
+ return Array.from(context.windowApi.document.querySelectorAll(selector)).filter(($ele) => {
945
+ // @ts-ignore
946
+ return Boolean(($ele?.textContent || $ele?.innerText)?.match(regexp));
947
+ });
948
+ }
949
+ else {
950
+ // 普通语法
951
+ return Array.from(context.windowApi.document.querySelectorAll(selector));
952
+ }
953
+ }
913
954
  }
914
955
 
915
956
  /**
@@ -924,11 +965,11 @@ class DOMUtils extends DOMUtilsEvent {
924
965
  super(option);
925
966
  }
926
967
  /** 版本号 */
927
- version = "2024.10.22";
968
+ version = "2024.10.23";
928
969
  attr(element, attrName, attrValue) {
929
970
  let DOMUtilsContext = this;
930
971
  if (typeof element === "string") {
931
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
972
+ element = DOMUtilsContext.selectorAll(element);
932
973
  }
933
974
  if (element == null) {
934
975
  return;
@@ -1034,7 +1075,7 @@ class DOMUtils extends DOMUtilsEvent {
1034
1075
  return propertyValue;
1035
1076
  }
1036
1077
  if (typeof element === "string") {
1037
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1078
+ element = DOMUtilsContext.selectorAll(element);
1038
1079
  }
1039
1080
  if (element == null) {
1040
1081
  return;
@@ -1096,7 +1137,7 @@ class DOMUtils extends DOMUtilsEvent {
1096
1137
  text(element, text) {
1097
1138
  let DOMUtilsContext = this;
1098
1139
  if (typeof element === "string") {
1099
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1140
+ element = DOMUtilsContext.selectorAll(element);
1100
1141
  }
1101
1142
  if (element == null) {
1102
1143
  return;
@@ -1132,7 +1173,7 @@ class DOMUtils extends DOMUtilsEvent {
1132
1173
  html(element, html) {
1133
1174
  let DOMUtilsContext = this;
1134
1175
  if (typeof element === "string") {
1135
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1176
+ element = DOMUtilsContext.selectorAll(element);
1136
1177
  }
1137
1178
  if (element == null) {
1138
1179
  return;
@@ -1202,7 +1243,7 @@ class DOMUtils extends DOMUtilsEvent {
1202
1243
  val(element, value) {
1203
1244
  let DOMUtilsContext = this;
1204
1245
  if (typeof element === "string") {
1205
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1246
+ element = DOMUtilsContext.selectorAll(element);
1206
1247
  }
1207
1248
  if (element == null) {
1208
1249
  return;
@@ -1244,7 +1285,7 @@ class DOMUtils extends DOMUtilsEvent {
1244
1285
  prop(element, propName, propValue) {
1245
1286
  let DOMUtilsContext = this;
1246
1287
  if (typeof element === "string") {
1247
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1288
+ element = DOMUtilsContext.selectorAll(element);
1248
1289
  }
1249
1290
  if (element == null) {
1250
1291
  return;
@@ -1281,7 +1322,7 @@ class DOMUtils extends DOMUtilsEvent {
1281
1322
  removeAttr(element, attrName) {
1282
1323
  let DOMUtilsContext = this;
1283
1324
  if (typeof element === "string") {
1284
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1325
+ element = DOMUtilsContext.selectorAll(element);
1285
1326
  }
1286
1327
  if (element == null) {
1287
1328
  return;
@@ -1307,7 +1348,7 @@ class DOMUtils extends DOMUtilsEvent {
1307
1348
  removeClass(element, className) {
1308
1349
  let DOMUtilsContext = this;
1309
1350
  if (typeof element === "string") {
1310
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1351
+ element = DOMUtilsContext.selectorAll(element);
1311
1352
  }
1312
1353
  if (element == null) {
1313
1354
  return;
@@ -1344,7 +1385,7 @@ class DOMUtils extends DOMUtilsEvent {
1344
1385
  removeProp(element, propName) {
1345
1386
  let DOMUtilsContext = this;
1346
1387
  if (typeof element === "string") {
1347
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1388
+ element = DOMUtilsContext.selectorAll(element);
1348
1389
  }
1349
1390
  if (element == null) {
1350
1391
  return;
@@ -1370,7 +1411,7 @@ class DOMUtils extends DOMUtilsEvent {
1370
1411
  replaceWith(element, newElement) {
1371
1412
  let DOMUtilsContext = this;
1372
1413
  if (typeof element === "string") {
1373
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1414
+ element = DOMUtilsContext.selectorAll(element);
1374
1415
  }
1375
1416
  if (element == null) {
1376
1417
  return;
@@ -1399,7 +1440,7 @@ class DOMUtils extends DOMUtilsEvent {
1399
1440
  addClass(element, className) {
1400
1441
  let DOMUtilsContext = this;
1401
1442
  if (typeof element === "string") {
1402
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1443
+ element = DOMUtilsContext.selectorAll(element);
1403
1444
  }
1404
1445
  if (element == null) {
1405
1446
  return;
@@ -1433,7 +1474,7 @@ class DOMUtils extends DOMUtilsEvent {
1433
1474
  append(element, content) {
1434
1475
  let DOMUtilsContext = this;
1435
1476
  if (typeof element === "string") {
1436
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1477
+ element = DOMUtilsContext.selectorAll(element);
1437
1478
  }
1438
1479
  if (element == null) {
1439
1480
  return;
@@ -1480,7 +1521,7 @@ class DOMUtils extends DOMUtilsEvent {
1480
1521
  prepend(element, content) {
1481
1522
  let DOMUtilsContext = this;
1482
1523
  if (typeof element === "string") {
1483
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1524
+ element = DOMUtilsContext.selectorAll(element);
1484
1525
  }
1485
1526
  if (element == null) {
1486
1527
  return;
@@ -1517,7 +1558,7 @@ class DOMUtils extends DOMUtilsEvent {
1517
1558
  after(element, content) {
1518
1559
  let DOMUtilsContext = this;
1519
1560
  if (typeof element === "string") {
1520
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1561
+ element = DOMUtilsContext.selectorAll(element);
1521
1562
  }
1522
1563
  if (element == null) {
1523
1564
  return;
@@ -1556,7 +1597,7 @@ class DOMUtils extends DOMUtilsEvent {
1556
1597
  before(element, content) {
1557
1598
  let DOMUtilsContext = this;
1558
1599
  if (typeof element === "string") {
1559
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1600
+ element = DOMUtilsContext.selectorAll(element);
1560
1601
  }
1561
1602
  if (element == null) {
1562
1603
  return;
@@ -1593,7 +1634,7 @@ class DOMUtils extends DOMUtilsEvent {
1593
1634
  remove(element) {
1594
1635
  let DOMUtilsContext = this;
1595
1636
  if (typeof element === "string") {
1596
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1637
+ element = DOMUtilsContext.selectorAll(element);
1597
1638
  }
1598
1639
  if (element == null) {
1599
1640
  return;
@@ -1617,7 +1658,7 @@ class DOMUtils extends DOMUtilsEvent {
1617
1658
  empty(element) {
1618
1659
  let DOMUtilsContext = this;
1619
1660
  if (typeof element === "string") {
1620
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1661
+ element = DOMUtilsContext.selectorAll(element);
1621
1662
  }
1622
1663
  if (element == null) {
1623
1664
  return;
@@ -1825,7 +1866,7 @@ class DOMUtils extends DOMUtilsEvent {
1825
1866
  animate(element, styles, duration = 1000, callback = null) {
1826
1867
  let DOMUtilsContext = this;
1827
1868
  if (typeof element === "string") {
1828
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1869
+ element = DOMUtilsContext.selectorAll(element);
1829
1870
  }
1830
1871
  if (element == null) {
1831
1872
  return;
@@ -1887,7 +1928,7 @@ class DOMUtils extends DOMUtilsEvent {
1887
1928
  wrap(element, wrapperHTML) {
1888
1929
  let DOMUtilsContext = this;
1889
1930
  if (typeof element === "string") {
1890
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1931
+ element = DOMUtilsContext.selectorAll(element);
1891
1932
  }
1892
1933
  if (element == null) {
1893
1934
  return;
@@ -2074,7 +2115,7 @@ class DOMUtils extends DOMUtilsEvent {
2074
2115
  return;
2075
2116
  }
2076
2117
  if (typeof target === "string") {
2077
- target = DOMUtilsContext.windowApi.document.querySelectorAll(target);
2118
+ target = DOMUtilsContext.selectorAll(target);
2078
2119
  }
2079
2120
  if (target instanceof NodeList || target instanceof Array) {
2080
2121
  target = target;
@@ -2111,7 +2152,7 @@ class DOMUtils extends DOMUtilsEvent {
2111
2152
  return;
2112
2153
  }
2113
2154
  if (typeof target === "string") {
2114
- target = DOMUtilsContext.windowApi.document.querySelectorAll(target);
2155
+ target = DOMUtilsContext.selectorAll(target);
2115
2156
  }
2116
2157
  if (target instanceof NodeList || target instanceof Array) {
2117
2158
  target = target;
@@ -2150,7 +2191,7 @@ class DOMUtils extends DOMUtilsEvent {
2150
2191
  }
2151
2192
  let DOMUtilsContext = this;
2152
2193
  if (typeof element === "string") {
2153
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
2194
+ element = DOMUtilsContext.selectorAll(element);
2154
2195
  }
2155
2196
  if (isNodeList(element)) {
2156
2197
  // 设置
@@ -2201,7 +2242,7 @@ class DOMUtils extends DOMUtilsEvent {
2201
2242
  return;
2202
2243
  }
2203
2244
  if (typeof element === "string") {
2204
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
2245
+ element = DOMUtilsContext.selectorAll(element);
2205
2246
  }
2206
2247
  if (isNodeList(element)) {
2207
2248
  // 设置
@@ -2244,7 +2285,7 @@ class DOMUtils extends DOMUtilsEvent {
2244
2285
  toggle(element, checkVisiblie) {
2245
2286
  let DOMUtilsContext = this;
2246
2287
  if (typeof element === "string") {
2247
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
2288
+ element = DOMUtilsContext.selectorAll(element);
2248
2289
  }
2249
2290
  if (element == null) {
2250
2291
  return;