@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.umd.js CHANGED
@@ -194,7 +194,7 @@
194
194
  let DOMUtilsContext = this;
195
195
  let args = arguments;
196
196
  if (typeof element === "string") {
197
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
197
+ element = DOMUtilsContext.selectorAll(element);
198
198
  }
199
199
  if (element == null) {
200
200
  return;
@@ -312,7 +312,7 @@
312
312
  let DOMUtilsContext = this;
313
313
  let args = arguments;
314
314
  if (typeof element === "string") {
315
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
315
+ element = DOMUtilsContext.selectorAll(element);
316
316
  }
317
317
  if (element == null) {
318
318
  return;
@@ -397,7 +397,7 @@
397
397
  offAll(element, eventType) {
398
398
  let DOMUtilsContext = this;
399
399
  if (typeof element === "string") {
400
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
400
+ element = DOMUtilsContext.selectorAll(element);
401
401
  }
402
402
  if (element == null) {
403
403
  return;
@@ -599,7 +599,7 @@
599
599
  click(element, handler, details, useDispatchToTriggerEvent) {
600
600
  let DOMUtilsContext = this;
601
601
  if (typeof element === "string") {
602
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
602
+ element = DOMUtilsContext.selectorAll(element);
603
603
  }
604
604
  if (element == null) {
605
605
  return;
@@ -671,7 +671,7 @@
671
671
  focus(element, handler, details, useDispatchToTriggerEvent) {
672
672
  let DOMUtilsContext = this;
673
673
  if (typeof element === "string") {
674
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
674
+ element = DOMUtilsContext.selectorAll(element);
675
675
  }
676
676
  if (element == null) {
677
677
  return;
@@ -707,7 +707,7 @@
707
707
  hover(element, handler, option) {
708
708
  let DOMUtilsContext = this;
709
709
  if (typeof element === "string") {
710
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
710
+ element = DOMUtilsContext.selectorAll(element);
711
711
  }
712
712
  if (element == null) {
713
713
  return;
@@ -743,7 +743,7 @@
743
743
  return;
744
744
  }
745
745
  if (typeof element === "string") {
746
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
746
+ element = DOMUtilsContext.selectorAll(element);
747
747
  }
748
748
  if (isNodeList(element)) {
749
749
  // 设置
@@ -775,7 +775,7 @@
775
775
  return;
776
776
  }
777
777
  if (typeof element === "string") {
778
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
778
+ element = DOMUtilsContext.selectorAll(element);
779
779
  }
780
780
  if (isNodeList(element)) {
781
781
  // 设置
@@ -807,7 +807,7 @@
807
807
  return;
808
808
  }
809
809
  if (typeof element === "string") {
810
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
810
+ element = DOMUtilsContext.selectorAll(element);
811
811
  }
812
812
  if (isNodeList(element)) {
813
813
  // 设置
@@ -884,7 +884,7 @@
884
884
  listenKeyboard(element, eventName = "keypress", callback, options) {
885
885
  let DOMUtilsContext = this;
886
886
  if (typeof element === "string") {
887
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
887
+ element = DOMUtilsContext.selectorAll(element);
888
888
  }
889
889
  let keyboardEventCallBack = function (event) {
890
890
  /** 键名 */
@@ -916,6 +916,47 @@
916
916
  },
917
917
  };
918
918
  }
919
+ selector(selector) {
920
+ return this.selectorAll(selector)[0];
921
+ }
922
+ selectorAll(selector) {
923
+ const context = this;
924
+ selector = selector.trim();
925
+ if (selector.match(/[^\s]{1}:empty$/gi)) {
926
+ // empty 语法
927
+ selector = selector.replace(/:empty$/gi, "");
928
+ return Array.from(context.windowApi.document.querySelectorAll(selector)).filter(($ele) => {
929
+ return $ele?.innerHTML?.trim() === "";
930
+ });
931
+ }
932
+ else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/gi) ||
933
+ selector.match(/[^\s]{1}:contains\('(.*)'\)$/gi)) {
934
+ // contains 语法
935
+ let textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
936
+ let text = textMatch[2];
937
+ selector = selector.replace(/:contains\(("|')(.*)("|')\)$/gi, "");
938
+ return Array.from(context.windowApi.document.querySelectorAll(selector)).filter(($ele) => {
939
+ // @ts-ignore
940
+ return ($ele?.textContent || $ele?.innerText)?.includes(text);
941
+ });
942
+ }
943
+ else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/gi) ||
944
+ selector.match(/[^\s]{1}:regexp\('(.*)'\)$/gi)) {
945
+ // regexp 语法
946
+ let textMatch = selector.match(/:regexp\(("|')(.*)("|')\)$/i);
947
+ let text = textMatch[2];
948
+ let regexp = new RegExp(text);
949
+ selector = selector.replace(/:regexp\(("|')(.*)("|')\)$/gi, "");
950
+ return Array.from(context.windowApi.document.querySelectorAll(selector)).filter(($ele) => {
951
+ // @ts-ignore
952
+ return Boolean(($ele?.textContent || $ele?.innerText)?.match(regexp));
953
+ });
954
+ }
955
+ else {
956
+ // 普通语法
957
+ return Array.from(context.windowApi.document.querySelectorAll(selector));
958
+ }
959
+ }
919
960
  }
920
961
 
921
962
  /**
@@ -930,11 +971,11 @@
930
971
  super(option);
931
972
  }
932
973
  /** 版本号 */
933
- version = "2024.10.22";
974
+ version = "2024.10.23";
934
975
  attr(element, attrName, attrValue) {
935
976
  let DOMUtilsContext = this;
936
977
  if (typeof element === "string") {
937
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
978
+ element = DOMUtilsContext.selectorAll(element);
938
979
  }
939
980
  if (element == null) {
940
981
  return;
@@ -1040,7 +1081,7 @@
1040
1081
  return propertyValue;
1041
1082
  }
1042
1083
  if (typeof element === "string") {
1043
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1084
+ element = DOMUtilsContext.selectorAll(element);
1044
1085
  }
1045
1086
  if (element == null) {
1046
1087
  return;
@@ -1102,7 +1143,7 @@
1102
1143
  text(element, text) {
1103
1144
  let DOMUtilsContext = this;
1104
1145
  if (typeof element === "string") {
1105
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1146
+ element = DOMUtilsContext.selectorAll(element);
1106
1147
  }
1107
1148
  if (element == null) {
1108
1149
  return;
@@ -1138,7 +1179,7 @@
1138
1179
  html(element, html) {
1139
1180
  let DOMUtilsContext = this;
1140
1181
  if (typeof element === "string") {
1141
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1182
+ element = DOMUtilsContext.selectorAll(element);
1142
1183
  }
1143
1184
  if (element == null) {
1144
1185
  return;
@@ -1208,7 +1249,7 @@
1208
1249
  val(element, value) {
1209
1250
  let DOMUtilsContext = this;
1210
1251
  if (typeof element === "string") {
1211
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1252
+ element = DOMUtilsContext.selectorAll(element);
1212
1253
  }
1213
1254
  if (element == null) {
1214
1255
  return;
@@ -1250,7 +1291,7 @@
1250
1291
  prop(element, propName, propValue) {
1251
1292
  let DOMUtilsContext = this;
1252
1293
  if (typeof element === "string") {
1253
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1294
+ element = DOMUtilsContext.selectorAll(element);
1254
1295
  }
1255
1296
  if (element == null) {
1256
1297
  return;
@@ -1287,7 +1328,7 @@
1287
1328
  removeAttr(element, attrName) {
1288
1329
  let DOMUtilsContext = this;
1289
1330
  if (typeof element === "string") {
1290
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1331
+ element = DOMUtilsContext.selectorAll(element);
1291
1332
  }
1292
1333
  if (element == null) {
1293
1334
  return;
@@ -1313,7 +1354,7 @@
1313
1354
  removeClass(element, className) {
1314
1355
  let DOMUtilsContext = this;
1315
1356
  if (typeof element === "string") {
1316
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1357
+ element = DOMUtilsContext.selectorAll(element);
1317
1358
  }
1318
1359
  if (element == null) {
1319
1360
  return;
@@ -1350,7 +1391,7 @@
1350
1391
  removeProp(element, propName) {
1351
1392
  let DOMUtilsContext = this;
1352
1393
  if (typeof element === "string") {
1353
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1394
+ element = DOMUtilsContext.selectorAll(element);
1354
1395
  }
1355
1396
  if (element == null) {
1356
1397
  return;
@@ -1376,7 +1417,7 @@
1376
1417
  replaceWith(element, newElement) {
1377
1418
  let DOMUtilsContext = this;
1378
1419
  if (typeof element === "string") {
1379
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1420
+ element = DOMUtilsContext.selectorAll(element);
1380
1421
  }
1381
1422
  if (element == null) {
1382
1423
  return;
@@ -1405,7 +1446,7 @@
1405
1446
  addClass(element, className) {
1406
1447
  let DOMUtilsContext = this;
1407
1448
  if (typeof element === "string") {
1408
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1449
+ element = DOMUtilsContext.selectorAll(element);
1409
1450
  }
1410
1451
  if (element == null) {
1411
1452
  return;
@@ -1439,7 +1480,7 @@
1439
1480
  append(element, content) {
1440
1481
  let DOMUtilsContext = this;
1441
1482
  if (typeof element === "string") {
1442
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1483
+ element = DOMUtilsContext.selectorAll(element);
1443
1484
  }
1444
1485
  if (element == null) {
1445
1486
  return;
@@ -1486,7 +1527,7 @@
1486
1527
  prepend(element, content) {
1487
1528
  let DOMUtilsContext = this;
1488
1529
  if (typeof element === "string") {
1489
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1530
+ element = DOMUtilsContext.selectorAll(element);
1490
1531
  }
1491
1532
  if (element == null) {
1492
1533
  return;
@@ -1523,7 +1564,7 @@
1523
1564
  after(element, content) {
1524
1565
  let DOMUtilsContext = this;
1525
1566
  if (typeof element === "string") {
1526
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1567
+ element = DOMUtilsContext.selectorAll(element);
1527
1568
  }
1528
1569
  if (element == null) {
1529
1570
  return;
@@ -1562,7 +1603,7 @@
1562
1603
  before(element, content) {
1563
1604
  let DOMUtilsContext = this;
1564
1605
  if (typeof element === "string") {
1565
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1606
+ element = DOMUtilsContext.selectorAll(element);
1566
1607
  }
1567
1608
  if (element == null) {
1568
1609
  return;
@@ -1599,7 +1640,7 @@
1599
1640
  remove(element) {
1600
1641
  let DOMUtilsContext = this;
1601
1642
  if (typeof element === "string") {
1602
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1643
+ element = DOMUtilsContext.selectorAll(element);
1603
1644
  }
1604
1645
  if (element == null) {
1605
1646
  return;
@@ -1623,7 +1664,7 @@
1623
1664
  empty(element) {
1624
1665
  let DOMUtilsContext = this;
1625
1666
  if (typeof element === "string") {
1626
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1667
+ element = DOMUtilsContext.selectorAll(element);
1627
1668
  }
1628
1669
  if (element == null) {
1629
1670
  return;
@@ -1831,7 +1872,7 @@
1831
1872
  animate(element, styles, duration = 1000, callback = null) {
1832
1873
  let DOMUtilsContext = this;
1833
1874
  if (typeof element === "string") {
1834
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1875
+ element = DOMUtilsContext.selectorAll(element);
1835
1876
  }
1836
1877
  if (element == null) {
1837
1878
  return;
@@ -1893,7 +1934,7 @@
1893
1934
  wrap(element, wrapperHTML) {
1894
1935
  let DOMUtilsContext = this;
1895
1936
  if (typeof element === "string") {
1896
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1937
+ element = DOMUtilsContext.selectorAll(element);
1897
1938
  }
1898
1939
  if (element == null) {
1899
1940
  return;
@@ -2080,7 +2121,7 @@
2080
2121
  return;
2081
2122
  }
2082
2123
  if (typeof target === "string") {
2083
- target = DOMUtilsContext.windowApi.document.querySelectorAll(target);
2124
+ target = DOMUtilsContext.selectorAll(target);
2084
2125
  }
2085
2126
  if (target instanceof NodeList || target instanceof Array) {
2086
2127
  target = target;
@@ -2117,7 +2158,7 @@
2117
2158
  return;
2118
2159
  }
2119
2160
  if (typeof target === "string") {
2120
- target = DOMUtilsContext.windowApi.document.querySelectorAll(target);
2161
+ target = DOMUtilsContext.selectorAll(target);
2121
2162
  }
2122
2163
  if (target instanceof NodeList || target instanceof Array) {
2123
2164
  target = target;
@@ -2156,7 +2197,7 @@
2156
2197
  }
2157
2198
  let DOMUtilsContext = this;
2158
2199
  if (typeof element === "string") {
2159
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
2200
+ element = DOMUtilsContext.selectorAll(element);
2160
2201
  }
2161
2202
  if (isNodeList(element)) {
2162
2203
  // 设置
@@ -2207,7 +2248,7 @@
2207
2248
  return;
2208
2249
  }
2209
2250
  if (typeof element === "string") {
2210
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
2251
+ element = DOMUtilsContext.selectorAll(element);
2211
2252
  }
2212
2253
  if (isNodeList(element)) {
2213
2254
  // 设置
@@ -2250,7 +2291,7 @@
2250
2291
  toggle(element, checkVisiblie) {
2251
2292
  let DOMUtilsContext = this;
2252
2293
  if (typeof element === "string") {
2253
- element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
2294
+ element = DOMUtilsContext.selectorAll(element);
2254
2295
  }
2255
2296
  if (element == null) {
2256
2297
  return;