@whitesev/domutils 1.3.3 → 1.3.5

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.
@@ -596,11 +596,18 @@ var DOMUtils = (function () {
596
596
  click(element, handler, details, useDispatchToTriggerEvent) {
597
597
  let DOMUtilsContext = this;
598
598
  if (typeof element === "string") {
599
- element = DOMUtilsContext.windowApi.document.querySelector(element);
599
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
600
600
  }
601
601
  if (element == null) {
602
602
  return;
603
603
  }
604
+ if (isNodeList(element)) {
605
+ // 设置
606
+ element.forEach(($ele) => {
607
+ DOMUtilsContext.click($ele, handler, details, useDispatchToTriggerEvent);
608
+ });
609
+ return;
610
+ }
604
611
  if (handler == null) {
605
612
  DOMUtilsContext.trigger(element, "click", details, useDispatchToTriggerEvent);
606
613
  }
@@ -630,6 +637,13 @@ var DOMUtils = (function () {
630
637
  if (element == null) {
631
638
  return;
632
639
  }
640
+ if (isNodeList(element)) {
641
+ // 设置
642
+ element.forEach(($ele) => {
643
+ DOMUtilsContext.focus($ele, handler, details, useDispatchToTriggerEvent);
644
+ });
645
+ return;
646
+ }
633
647
  if (handler === null) {
634
648
  DOMUtilsContext.trigger(element, "blur", details, useDispatchToTriggerEvent);
635
649
  }
@@ -654,11 +668,18 @@ var DOMUtils = (function () {
654
668
  focus(element, handler, details, useDispatchToTriggerEvent) {
655
669
  let DOMUtilsContext = this;
656
670
  if (typeof element === "string") {
657
- element = DOMUtilsContext.windowApi.document.querySelector(element);
671
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
658
672
  }
659
673
  if (element == null) {
660
674
  return;
661
675
  }
676
+ if (isNodeList(element)) {
677
+ // 设置
678
+ element.forEach(($ele) => {
679
+ DOMUtilsContext.focus($ele, handler, details, useDispatchToTriggerEvent);
680
+ });
681
+ return;
682
+ }
662
683
  if (handler == null) {
663
684
  DOMUtilsContext.trigger(element, "focus", details, useDispatchToTriggerEvent);
664
685
  }
@@ -683,18 +704,25 @@ var DOMUtils = (function () {
683
704
  hover(element, handler, option) {
684
705
  let DOMUtilsContext = this;
685
706
  if (typeof element === "string") {
686
- element = DOMUtilsContext.windowApi.document.querySelector(element);
707
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
687
708
  }
688
709
  if (element == null) {
689
710
  return;
690
711
  }
712
+ if (isNodeList(element)) {
713
+ // 设置
714
+ element.forEach(($ele) => {
715
+ DOMUtilsContext.hover($ele, handler, option);
716
+ });
717
+ return;
718
+ }
691
719
  DOMUtilsContext.on(element, "mouseenter", null, handler, option);
692
720
  DOMUtilsContext.on(element, "mouseleave", null, handler, option);
693
721
  }
694
722
  /**
695
723
  * 当按键松开时触发事件
696
724
  * keydown - > keypress - > keyup
697
- * @param target 当前元素
725
+ * @param element 当前元素
698
726
  * @param handler 事件处理函数
699
727
  * @param option 配置
700
728
  * @example
@@ -706,20 +734,27 @@ var DOMUtils = (function () {
706
734
  * console.log("按键松开");
707
735
  * })
708
736
  */
709
- keyup(target, handler, option) {
737
+ keyup(element, handler, option) {
710
738
  let DOMUtilsContext = this;
711
- if (target == null) {
739
+ if (element == null) {
712
740
  return;
713
741
  }
714
- if (typeof target === "string") {
715
- target = DOMUtilsContext.windowApi.document.querySelector(target);
742
+ if (typeof element === "string") {
743
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
744
+ }
745
+ if (isNodeList(element)) {
746
+ // 设置
747
+ element.forEach(($ele) => {
748
+ DOMUtilsContext.keyup($ele, handler, option);
749
+ });
750
+ return;
716
751
  }
717
- DOMUtilsContext.on(target, "keyup", null, handler, option);
752
+ DOMUtilsContext.on(element, "keyup", null, handler, option);
718
753
  }
719
754
  /**
720
755
  * 当按键按下时触发事件
721
756
  * keydown - > keypress - > keyup
722
- * @param target 目标
757
+ * @param element 目标
723
758
  * @param handler 事件处理函数
724
759
  * @param option 配置
725
760
  * @example
@@ -731,20 +766,27 @@ var DOMUtils = (function () {
731
766
  * console.log("按键按下");
732
767
  * })
733
768
  */
734
- keydown(target, handler, option) {
769
+ keydown(element, handler, option) {
735
770
  let DOMUtilsContext = this;
736
- if (target == null) {
771
+ if (element == null) {
737
772
  return;
738
773
  }
739
- if (typeof target === "string") {
740
- target = DOMUtilsContext.windowApi.document.querySelector(target);
774
+ if (typeof element === "string") {
775
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
776
+ }
777
+ if (isNodeList(element)) {
778
+ // 设置
779
+ element.forEach(($ele) => {
780
+ DOMUtilsContext.keydown($ele, handler, option);
781
+ });
782
+ return;
741
783
  }
742
- DOMUtilsContext.on(target, "keydown", null, handler, option);
784
+ DOMUtilsContext.on(element, "keydown", null, handler, option);
743
785
  }
744
786
  /**
745
787
  * 当按键按下时触发事件
746
788
  * keydown - > keypress - > keyup
747
- * @param target 目标
789
+ * @param element 目标
748
790
  * @param handler 事件处理函数
749
791
  * @param option 配置
750
792
  * @example
@@ -756,20 +798,27 @@ var DOMUtils = (function () {
756
798
  * console.log("按键按下");
757
799
  * })
758
800
  */
759
- keypress(target, handler, option) {
801
+ keypress(element, handler, option) {
760
802
  let DOMUtilsContext = this;
761
- if (target == null) {
803
+ if (element == null) {
762
804
  return;
763
805
  }
764
- if (typeof target === "string") {
765
- target = DOMUtilsContext.windowApi.document.querySelector(target);
806
+ if (typeof element === "string") {
807
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
808
+ }
809
+ if (isNodeList(element)) {
810
+ // 设置
811
+ element.forEach(($ele) => {
812
+ DOMUtilsContext.keypress($ele, handler, option);
813
+ });
814
+ return;
766
815
  }
767
- DOMUtilsContext.on(target, "keypress", null, handler, option);
816
+ DOMUtilsContext.on(element, "keypress", null, handler, option);
768
817
  }
769
818
  /**
770
819
  * 监听某个元素键盘按键事件或window全局按键事件
771
820
  * 按下有值的键时触发,按下Ctrl\Alt\Shift\Meta是无值键。按下先触发keydown事件,再触发keypress事件。
772
- * @param target 需要监听的对象,可以是全局Window或者某个元素
821
+ * @param element 需要监听的对象,可以是全局Window或者某个元素
773
822
  * @param eventName 事件名,默认keypress
774
823
  * @param callback 自己定义的回调事件,参数1为当前的key,参数2为组合按键,数组类型,包含ctrl、shift、alt和meta(win键或mac的cmd键)
775
824
  * @param options 监听事件的配置
@@ -829,7 +878,11 @@ var DOMUtils = (function () {
829
878
  搜索 170
830
879
  收藏 171
831
880
  **/
832
- listenKeyboard(target, eventName = "keypress", callback, options) {
881
+ listenKeyboard(element, eventName = "keypress", callback, options) {
882
+ let DOMUtilsContext = this;
883
+ if (typeof element === "string") {
884
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
885
+ }
833
886
  let keyboardEventCallBack = function (event) {
834
887
  /** 键名 */
835
888
  let keyName = event.key || event.code;
@@ -853,29 +906,49 @@ var DOMUtils = (function () {
853
906
  callback(keyName, keyValue, otherCodeList, event);
854
907
  }
855
908
  };
856
- this.on(target, eventName, keyboardEventCallBack, options);
909
+ DOMUtilsContext.on(element, eventName, keyboardEventCallBack, options);
857
910
  return {
858
911
  removeListen: () => {
859
- this.off(target, eventName, keyboardEventCallBack, options);
912
+ DOMUtilsContext.off(element, eventName, keyboardEventCallBack, options);
860
913
  },
861
914
  };
862
915
  }
863
916
  }
864
917
 
918
+ /**
919
+ * 判断是否是元素列表
920
+ * @param $ele
921
+ */
922
+ const isNodeList = ($ele) => {
923
+ return Array.isArray($ele) || $ele instanceof NodeList;
924
+ };
865
925
  class DOMUtils extends DOMUtilsEvent {
866
926
  constructor(option) {
867
927
  super(option);
868
928
  }
869
929
  /** 版本号 */
870
- version = "2024.9.23";
930
+ version = "2024.10.22";
871
931
  attr(element, attrName, attrValue) {
872
932
  let DOMUtilsContext = this;
873
933
  if (typeof element === "string") {
874
- element = DOMUtilsContext.windowApi.document.querySelector(element);
934
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
875
935
  }
876
936
  if (element == null) {
877
937
  return;
878
938
  }
939
+ if (isNodeList(element)) {
940
+ if (attrValue == null) {
941
+ // 获取属性
942
+ return DOMUtilsContext.attr(element[0], attrName, attrValue);
943
+ }
944
+ else {
945
+ // 设置属性
946
+ element.forEach(($ele) => {
947
+ DOMUtilsContext.attr($ele, attrName, attrValue);
948
+ });
949
+ return;
950
+ }
951
+ }
879
952
  if (attrValue == null) {
880
953
  return element.getAttribute(attrName);
881
954
  }
@@ -964,14 +1037,40 @@ var DOMUtils = (function () {
964
1037
  return propertyValue;
965
1038
  }
966
1039
  if (typeof element === "string") {
967
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1040
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
968
1041
  }
969
1042
  if (element == null) {
970
1043
  return;
971
1044
  }
1045
+ if (isNodeList(element)) {
1046
+ if (typeof property === "string") {
1047
+ if (value == null) {
1048
+ // 获取属性
1049
+ return DOMUtilsContext.css(element[0], property);
1050
+ }
1051
+ else {
1052
+ // 设置属性
1053
+ element.forEach(($ele) => {
1054
+ DOMUtilsContext.css($ele, property);
1055
+ });
1056
+ return;
1057
+ }
1058
+ }
1059
+ else if (typeof property === "object") {
1060
+ // 设置属性
1061
+ element.forEach(($ele) => {
1062
+ DOMUtilsContext.css($ele, property);
1063
+ });
1064
+ return;
1065
+ }
1066
+ else ;
1067
+ return;
1068
+ }
972
1069
  if (typeof property === "string") {
973
1070
  if (value == null) {
974
- return getComputedStyle(element).getPropertyValue(property);
1071
+ return DOMUtilsContext.windowApi.globalThis
1072
+ .getComputedStyle(element)
1073
+ .getPropertyValue(property);
975
1074
  }
976
1075
  else {
977
1076
  if (value === "string" && value.includes("!important")) {
@@ -995,15 +1094,29 @@ var DOMUtils = (function () {
995
1094
  }
996
1095
  }
997
1096
  }
1097
+ else ;
998
1098
  }
999
1099
  text(element, text) {
1000
1100
  let DOMUtilsContext = this;
1001
1101
  if (typeof element === "string") {
1002
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1102
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1003
1103
  }
1004
1104
  if (element == null) {
1005
1105
  return;
1006
1106
  }
1107
+ if (isNodeList(element)) {
1108
+ if (text == null) {
1109
+ // 获取
1110
+ return DOMUtilsContext.text(element[0]);
1111
+ }
1112
+ else {
1113
+ // 设置
1114
+ element.forEach(($ele) => {
1115
+ DOMUtilsContext.text($ele, text);
1116
+ });
1117
+ }
1118
+ return;
1119
+ }
1007
1120
  if (text == null) {
1008
1121
  return element.textContent || element.innerText;
1009
1122
  }
@@ -1022,16 +1135,31 @@ var DOMUtils = (function () {
1022
1135
  html(element, html) {
1023
1136
  let DOMUtilsContext = this;
1024
1137
  if (typeof element === "string") {
1025
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1138
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1026
1139
  }
1027
1140
  if (element == null) {
1028
1141
  return;
1029
1142
  }
1143
+ if (isNodeList(element)) {
1144
+ if (html == null) {
1145
+ // 获取
1146
+ return DOMUtilsContext.html(element[0]);
1147
+ }
1148
+ else {
1149
+ // 设置
1150
+ element.forEach(($ele) => {
1151
+ DOMUtilsContext.html($ele, html);
1152
+ });
1153
+ }
1154
+ return;
1155
+ }
1030
1156
  if (html == null) {
1157
+ // 获取
1031
1158
  return element.innerHTML;
1032
1159
  }
1033
1160
  else {
1034
- if (html instanceof Node) {
1161
+ // 设置
1162
+ if (html instanceof Element) {
1035
1163
  html = html.innerHTML;
1036
1164
  }
1037
1165
  if ("innerHTML" in element) {
@@ -1053,7 +1181,7 @@ var DOMUtils = (function () {
1053
1181
  recovery();
1054
1182
  return transformInfo;
1055
1183
  }
1056
- let elementTransform = getComputedStyle(element).transform;
1184
+ let elementTransform = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element).transform;
1057
1185
  if (elementTransform != null &&
1058
1186
  elementTransform !== "none" &&
1059
1187
  elementTransform !== "") {
@@ -1077,12 +1205,26 @@ var DOMUtils = (function () {
1077
1205
  val(element, value) {
1078
1206
  let DOMUtilsContext = this;
1079
1207
  if (typeof element === "string") {
1080
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1208
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1081
1209
  }
1082
1210
  if (element == null) {
1083
1211
  return;
1084
1212
  }
1213
+ if (isNodeList(element)) {
1214
+ if (value == null) {
1215
+ // 获取
1216
+ return DOMUtilsContext.val(element[0]);
1217
+ }
1218
+ else {
1219
+ // 设置
1220
+ element.forEach(($ele) => {
1221
+ DOMUtilsContext.val($ele, value);
1222
+ });
1223
+ }
1224
+ return;
1225
+ }
1085
1226
  if (value == null) {
1227
+ // 获取
1086
1228
  if (element.localName === "input" &&
1087
1229
  (element.type === "checkbox" || element.type === "radio")) {
1088
1230
  return element.checked;
@@ -1092,6 +1234,7 @@ var DOMUtils = (function () {
1092
1234
  }
1093
1235
  }
1094
1236
  else {
1237
+ // 设置
1095
1238
  if (element.localName === "input" &&
1096
1239
  (element.type === "checkbox" || element.type === "radio")) {
1097
1240
  element.checked = !!value;
@@ -1103,17 +1246,30 @@ var DOMUtils = (function () {
1103
1246
  }
1104
1247
  prop(element, propName, propValue) {
1105
1248
  let DOMUtilsContext = this;
1249
+ if (typeof element === "string") {
1250
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1251
+ }
1106
1252
  if (element == null) {
1107
1253
  return;
1108
1254
  }
1109
- if (typeof element === "string") {
1110
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1255
+ if (isNodeList(element)) {
1256
+ if (propValue == null) {
1257
+ // 获取
1258
+ return DOMUtilsContext.prop(element[0], propName);
1259
+ }
1260
+ else {
1261
+ // 设置
1262
+ element.forEach(($ele) => {
1263
+ DOMUtilsContext.prop($ele, propName, propValue);
1264
+ });
1265
+ }
1266
+ return;
1111
1267
  }
1112
1268
  if (propValue == null) {
1113
- return element[propName];
1269
+ return Reflect.get(element, propName);
1114
1270
  }
1115
1271
  else {
1116
- element[propName] = propValue;
1272
+ Reflect.set(element, propName, propValue);
1117
1273
  }
1118
1274
  }
1119
1275
  /**
@@ -1128,11 +1284,18 @@ var DOMUtils = (function () {
1128
1284
  removeAttr(element, attrName) {
1129
1285
  let DOMUtilsContext = this;
1130
1286
  if (typeof element === "string") {
1131
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1287
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1132
1288
  }
1133
1289
  if (element == null) {
1134
1290
  return;
1135
1291
  }
1292
+ if (isNodeList(element)) {
1293
+ // 设置
1294
+ element.forEach(($ele) => {
1295
+ DOMUtilsContext.removeAttr($ele, attrName);
1296
+ });
1297
+ return;
1298
+ }
1136
1299
  element.removeAttribute(attrName);
1137
1300
  }
1138
1301
  /**
@@ -1147,15 +1310,30 @@ var DOMUtils = (function () {
1147
1310
  removeClass(element, className) {
1148
1311
  let DOMUtilsContext = this;
1149
1312
  if (typeof element === "string") {
1150
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1313
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1151
1314
  }
1152
1315
  if (element == null) {
1153
1316
  return;
1154
1317
  }
1155
- if (className == null) {
1318
+ if (isNodeList(element)) {
1319
+ // 设置
1320
+ element.forEach(($ele) => {
1321
+ DOMUtilsContext.removeClass($ele, className);
1322
+ });
1156
1323
  return;
1157
1324
  }
1158
- element.classList.remove(className);
1325
+ if (className == null) {
1326
+ // 清空全部className
1327
+ element.className = "";
1328
+ }
1329
+ else {
1330
+ if (!Array.isArray(className)) {
1331
+ className = className.split(" ");
1332
+ }
1333
+ className.forEach((itemClassName) => {
1334
+ element.classList.remove(itemClassName);
1335
+ });
1336
+ }
1159
1337
  }
1160
1338
  /**
1161
1339
  * 移除元素的属性
@@ -1169,11 +1347,18 @@ var DOMUtils = (function () {
1169
1347
  removeProp(element, propName) {
1170
1348
  let DOMUtilsContext = this;
1171
1349
  if (typeof element === "string") {
1172
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1350
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1173
1351
  }
1174
1352
  if (element == null) {
1175
1353
  return;
1176
1354
  }
1355
+ if (isNodeList(element)) {
1356
+ // 设置
1357
+ element.forEach(($ele) => {
1358
+ DOMUtilsContext.removeProp($ele, propName);
1359
+ });
1360
+ return;
1361
+ }
1177
1362
  DOMUtilsCommonUtils.delete(element, propName);
1178
1363
  }
1179
1364
  /**
@@ -1188,22 +1373,22 @@ var DOMUtils = (function () {
1188
1373
  replaceWith(element, newElement) {
1189
1374
  let DOMUtilsContext = this;
1190
1375
  if (typeof element === "string") {
1191
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1376
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1192
1377
  }
1193
1378
  if (element == null) {
1194
1379
  return;
1195
1380
  }
1196
- if (typeof newElement === "string") {
1197
- newElement = DOMUtilsContext.parseHTML(newElement, false, false);
1198
- }
1199
- if (element instanceof NodeList || element instanceof Array) {
1200
- element.forEach((item) => {
1201
- DOMUtilsContext.replaceWith(item, newElement);
1381
+ if (isNodeList(element)) {
1382
+ // 设置
1383
+ element.forEach(($ele) => {
1384
+ DOMUtilsContext.replaceWith($ele, newElement);
1202
1385
  });
1386
+ return;
1203
1387
  }
1204
- else {
1205
- element.parentElement.replaceChild(newElement, element);
1388
+ if (typeof newElement === "string") {
1389
+ newElement = DOMUtilsContext.parseHTML(newElement, false, false);
1206
1390
  }
1391
+ element.parentElement.replaceChild(newElement, element);
1207
1392
  }
1208
1393
  /**
1209
1394
  * 给元素添加class
@@ -1217,12 +1402,27 @@ var DOMUtils = (function () {
1217
1402
  addClass(element, className) {
1218
1403
  let DOMUtilsContext = this;
1219
1404
  if (typeof element === "string") {
1220
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1405
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1221
1406
  }
1222
1407
  if (element == null) {
1223
1408
  return;
1224
1409
  }
1225
- element.classList.add(className);
1410
+ if (isNodeList(element)) {
1411
+ // 设置
1412
+ element.forEach(($ele) => {
1413
+ DOMUtilsContext.addClass($ele, className);
1414
+ });
1415
+ return;
1416
+ }
1417
+ if (!Array.isArray(className)) {
1418
+ className = className.split(" ");
1419
+ }
1420
+ className.forEach((itemClassName) => {
1421
+ if (itemClassName.trim() == "") {
1422
+ return;
1423
+ }
1424
+ element.classList.add(itemClassName);
1425
+ });
1226
1426
  }
1227
1427
  /**
1228
1428
  * 函数在元素内部末尾添加子元素或HTML字符串
@@ -1236,11 +1436,18 @@ var DOMUtils = (function () {
1236
1436
  append(element, content) {
1237
1437
  let DOMUtilsContext = this;
1238
1438
  if (typeof element === "string") {
1239
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1439
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1240
1440
  }
1241
1441
  if (element == null) {
1242
1442
  return;
1243
1443
  }
1444
+ if (isNodeList(element)) {
1445
+ // 设置
1446
+ element.forEach(($ele) => {
1447
+ DOMUtilsContext.append($ele, content);
1448
+ });
1449
+ return;
1450
+ }
1244
1451
  function elementAppendChild(ele, text) {
1245
1452
  if (typeof content === "string") {
1246
1453
  ele.insertAdjacentHTML("beforeend", text);
@@ -1254,7 +1461,7 @@ var DOMUtils = (function () {
1254
1461
  let fragment = DOMUtilsContext.windowApi.document.createDocumentFragment();
1255
1462
  content.forEach((ele) => {
1256
1463
  if (typeof ele === "string") {
1257
- ele = this.parseHTML(ele, true, false);
1464
+ ele = DOMUtilsContext.parseHTML(ele, true, false);
1258
1465
  }
1259
1466
  fragment.appendChild(ele);
1260
1467
  });
@@ -1276,11 +1483,18 @@ var DOMUtils = (function () {
1276
1483
  prepend(element, content) {
1277
1484
  let DOMUtilsContext = this;
1278
1485
  if (typeof element === "string") {
1279
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1486
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1280
1487
  }
1281
1488
  if (element == null) {
1282
1489
  return;
1283
1490
  }
1491
+ if (isNodeList(element)) {
1492
+ // 设置
1493
+ element.forEach(($ele) => {
1494
+ DOMUtilsContext.prepend($ele, content);
1495
+ });
1496
+ return;
1497
+ }
1284
1498
  if (typeof content === "string") {
1285
1499
  element.insertAdjacentHTML("afterbegin", content);
1286
1500
  }
@@ -1306,11 +1520,18 @@ var DOMUtils = (function () {
1306
1520
  after(element, content) {
1307
1521
  let DOMUtilsContext = this;
1308
1522
  if (typeof element === "string") {
1309
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1523
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1310
1524
  }
1311
1525
  if (element == null) {
1312
1526
  return;
1313
1527
  }
1528
+ if (isNodeList(element)) {
1529
+ // 设置
1530
+ element.forEach(($ele) => {
1531
+ DOMUtilsContext.after($ele, content);
1532
+ });
1533
+ return;
1534
+ }
1314
1535
  if (typeof content === "string") {
1315
1536
  element.insertAdjacentHTML("afterend", content);
1316
1537
  }
@@ -1338,11 +1559,18 @@ var DOMUtils = (function () {
1338
1559
  before(element, content) {
1339
1560
  let DOMUtilsContext = this;
1340
1561
  if (typeof element === "string") {
1341
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1562
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1342
1563
  }
1343
1564
  if (element == null) {
1344
1565
  return;
1345
1566
  }
1567
+ if (isNodeList(element)) {
1568
+ // 设置
1569
+ element.forEach(($ele) => {
1570
+ DOMUtilsContext.before($ele, content);
1571
+ });
1572
+ return;
1573
+ }
1346
1574
  if (typeof content === "string") {
1347
1575
  element.insertAdjacentHTML("beforebegin", content);
1348
1576
  }
@@ -1358,30 +1586,28 @@ var DOMUtils = (function () {
1358
1586
  }
1359
1587
  /**
1360
1588
  * 移除元素
1361
- * @param target 目标元素
1589
+ * @param element 目标元素
1362
1590
  * @example
1363
1591
  * // 元素a.xx前面添加一个元素
1364
1592
  * DOMUtils.remove(document.querySelector("a.xx"))
1365
1593
  * DOMUtils.remove(document.querySelectorAll("a.xx"))
1366
1594
  * DOMUtils.remove("a.xx")
1367
1595
  * */
1368
- remove(target) {
1596
+ remove(element) {
1369
1597
  let DOMUtilsContext = this;
1370
- if (typeof target === "string") {
1371
- target = DOMUtilsContext.windowApi.document.querySelectorAll(target);
1598
+ if (typeof element === "string") {
1599
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1372
1600
  }
1373
- if (target == null) {
1601
+ if (element == null) {
1374
1602
  return;
1375
1603
  }
1376
- if (target instanceof NodeList || target instanceof Array) {
1377
- target = target;
1378
- for (const element of target) {
1379
- DOMUtilsContext.remove(element);
1380
- }
1381
- }
1382
- else {
1383
- target.remove();
1604
+ if (isNodeList(element)) {
1605
+ element.forEach(($ele) => {
1606
+ DOMUtilsContext.remove($ele);
1607
+ });
1608
+ return;
1384
1609
  }
1610
+ element.remove();
1385
1611
  }
1386
1612
  /**
1387
1613
  * 移除元素的所有子元素
@@ -1394,11 +1620,18 @@ var DOMUtils = (function () {
1394
1620
  empty(element) {
1395
1621
  let DOMUtilsContext = this;
1396
1622
  if (typeof element === "string") {
1397
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1623
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1398
1624
  }
1399
1625
  if (element == null) {
1400
1626
  return;
1401
1627
  }
1628
+ if (isNodeList(element)) {
1629
+ // 设置
1630
+ element.forEach(($ele) => {
1631
+ DOMUtilsContext.empty($ele);
1632
+ });
1633
+ return;
1634
+ }
1402
1635
  element.innerHTML = "";
1403
1636
  }
1404
1637
  /**
@@ -1429,7 +1662,8 @@ var DOMUtils = (function () {
1429
1662
  width(element, isShow = false) {
1430
1663
  let DOMUtilsContext = this;
1431
1664
  if (typeof element === "string") {
1432
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1665
+ element =
1666
+ DOMUtilsContext.windowApi.document.querySelector(element);
1433
1667
  }
1434
1668
  if (element == null) {
1435
1669
  return;
@@ -1541,7 +1775,7 @@ var DOMUtils = (function () {
1541
1775
  }
1542
1776
  element = element;
1543
1777
  if (isShow || (!isShow && DOMUtilsCommonUtils.isShow(element))) {
1544
- let style = getComputedStyle(element, null);
1778
+ let style = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element, null);
1545
1779
  let marginLeft = DOMUtilsCommonUtils.getStyleValue(style, "marginLeft");
1546
1780
  let marginRight = DOMUtilsCommonUtils.getStyleValue(style, "marginRight");
1547
1781
  return element.offsetWidth + marginLeft + marginRight;
@@ -1567,7 +1801,7 @@ var DOMUtils = (function () {
1567
1801
  }
1568
1802
  element = element;
1569
1803
  if (isShow || (!isShow && DOMUtilsCommonUtils.isShow(element))) {
1570
- let style = getComputedStyle(element, null);
1804
+ let style = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element, null);
1571
1805
  let marginTop = DOMUtilsCommonUtils.getStyleValue(style, "marginTop");
1572
1806
  let marginBottom = DOMUtilsCommonUtils.getStyleValue(style, "marginBottom");
1573
1807
  return element.offsetHeight + marginTop + marginBottom;
@@ -1594,11 +1828,18 @@ var DOMUtils = (function () {
1594
1828
  animate(element, styles, duration = 1000, callback = null) {
1595
1829
  let DOMUtilsContext = this;
1596
1830
  if (typeof element === "string") {
1597
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1831
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1598
1832
  }
1599
1833
  if (element == null) {
1600
1834
  return;
1601
1835
  }
1836
+ if (isNodeList(element)) {
1837
+ // 设置
1838
+ element.forEach(($ele) => {
1839
+ DOMUtilsContext.animate($ele, styles, duration, callback);
1840
+ });
1841
+ return;
1842
+ }
1602
1843
  if (typeof duration !== "number" || duration <= 0) {
1603
1844
  throw new TypeError("duration must be a positive number");
1604
1845
  }
@@ -1615,7 +1856,9 @@ var DOMUtils = (function () {
1615
1856
  let from = {};
1616
1857
  let to = {};
1617
1858
  for (let prop in styles) {
1618
- from[prop] = element.style[prop] || getComputedStyle(element)[prop];
1859
+ from[prop] =
1860
+ element.style[prop] ||
1861
+ DOMUtilsContext.windowApi.globalThis.getComputedStyle(element)[prop];
1619
1862
  to[prop] = styles[prop];
1620
1863
  }
1621
1864
  let timer = setInterval(function () {
@@ -1647,18 +1890,26 @@ var DOMUtils = (function () {
1647
1890
  wrap(element, wrapperHTML) {
1648
1891
  let DOMUtilsContext = this;
1649
1892
  if (typeof element === "string") {
1650
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1893
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1651
1894
  }
1652
1895
  if (element == null) {
1653
1896
  return;
1654
1897
  }
1898
+ if (isNodeList(element)) {
1899
+ // 设置
1900
+ element.forEach(($ele) => {
1901
+ DOMUtilsContext.wrap($ele, wrapperHTML);
1902
+ });
1903
+ return;
1904
+ }
1655
1905
  element = element;
1656
1906
  // 创建一个新的div元素,并将wrapperHTML作为其innerHTML
1657
1907
  let wrapper = DOMUtilsContext.windowApi.document.createElement("div");
1658
1908
  wrapper.innerHTML = wrapperHTML;
1659
1909
  let wrapperFirstChild = wrapper.firstChild;
1660
1910
  // 将要包裹的元素插入目标元素前面
1661
- element.parentElement.insertBefore(wrapperFirstChild, element);
1911
+ let parentElement = element.parentElement;
1912
+ parentElement.insertBefore(wrapperFirstChild, element);
1662
1913
  // 将要包裹的元素移动到wrapper中
1663
1914
  wrapperFirstChild.appendChild(element);
1664
1915
  }
@@ -1738,6 +1989,8 @@ var DOMUtils = (function () {
1738
1989
  }
1739
1990
  parseHTML(html, useParser = false, isComplete = false) {
1740
1991
  let DOMUtilsContext = this;
1992
+ // 去除html前后的空格
1993
+ html = html.trim();
1741
1994
  function parseHTMLByDOMParser() {
1742
1995
  let parser = new DOMParser();
1743
1996
  if (isComplete) {
@@ -1764,16 +2017,61 @@ var DOMUtils = (function () {
1764
2017
  return parseHTMLByCreateDom();
1765
2018
  }
1766
2019
  }
2020
+ /**
2021
+ * 序列化表单元素
2022
+ * @param $form 表单元素
2023
+ * @example
2024
+ * DOMUtils.serialize(document.querySelector("form"))
2025
+ * > xxx=xxx&aaa=
2026
+ */
2027
+ serialize($form) {
2028
+ const elements = $form.elements;
2029
+ let serializedArray = [];
2030
+ for (let i = 0; i < elements.length; i++) {
2031
+ const element = elements[i];
2032
+ if (element.name &&
2033
+ !element.disabled &&
2034
+ (element.checked ||
2035
+ [
2036
+ "text",
2037
+ "hidden",
2038
+ "password",
2039
+ "textarea",
2040
+ "select-one",
2041
+ "select-multiple",
2042
+ ].includes(element.type))) {
2043
+ if (element.type === "select-multiple") {
2044
+ for (let j = 0; j < element.options.length; j++) {
2045
+ if (element.options[j].selected) {
2046
+ serializedArray.push({
2047
+ name: element.name,
2048
+ value: element.options[j].value,
2049
+ });
2050
+ }
2051
+ }
2052
+ }
2053
+ else {
2054
+ serializedArray.push({ name: element.name, value: element.value });
2055
+ }
2056
+ }
2057
+ }
2058
+ return serializedArray
2059
+ .map((item) => `${encodeURIComponent(item.name)}=${encodeURIComponent(item.value)}`)
2060
+ .join("&");
2061
+ }
1767
2062
  /**
1768
2063
  * 显示元素
1769
2064
  * @param target 当前元素
2065
+ * @param checkVisiblie 是否检测元素是否显示
2066
+ * + true (默认)如果检测到还未显示,则强制使用display: unset !important;
2067
+ * + false 不检测,直接设置display属性为空
1770
2068
  * @example
1771
2069
  * // 显示a.xx元素
1772
2070
  * DOMUtils.show(document.querySelector("a.xx"))
1773
2071
  * DOMUtils.show(document.querySelectorAll("a.xx"))
1774
2072
  * DOMUtils.show("a.xx")
1775
2073
  */
1776
- show(target) {
2074
+ show(target, checkVisiblie = true) {
1777
2075
  let DOMUtilsContext = this;
1778
2076
  if (target == null) {
1779
2077
  return;
@@ -1784,28 +2082,33 @@ var DOMUtils = (function () {
1784
2082
  if (target instanceof NodeList || target instanceof Array) {
1785
2083
  target = target;
1786
2084
  for (const element of target) {
1787
- DOMUtilsContext.show(element);
2085
+ DOMUtilsContext.show(element, checkVisiblie);
1788
2086
  }
1789
2087
  }
1790
2088
  else {
1791
2089
  target = target;
1792
2090
  target.style.display = "";
1793
- if (!DOMUtilsCommonUtils.isShow(target)) {
1794
- /* 仍然是不显示,尝试使用强覆盖 */
1795
- target.style.setProperty("display", "unset", "important");
2091
+ if (checkVisiblie) {
2092
+ if (!DOMUtilsCommonUtils.isShow(target)) {
2093
+ /* 仍然是不显示,尝试使用强覆盖 */
2094
+ target.style.setProperty("display", "unset", "important");
2095
+ }
1796
2096
  }
1797
2097
  }
1798
2098
  }
1799
2099
  /**
1800
2100
  * 隐藏元素
1801
2101
  * @param target 当前元素
2102
+ * @param checkVisiblie 是否检测元素是否显示
2103
+ * + true (默认)如果检测到显示,则强制使用display: none !important;
2104
+ * + false 不检测,直接设置display属性为none
1802
2105
  * @example
1803
2106
  * // 隐藏a.xx元素
1804
2107
  * DOMUtils.hide(document.querySelector("a.xx"))
1805
2108
  * DOMUtils.hide(document.querySelectorAll("a.xx"))
1806
2109
  * DOMUtils.hide("a.xx")
1807
2110
  */
1808
- hide(target) {
2111
+ hide(target, checkVisiblie = true) {
1809
2112
  let DOMUtilsContext = this;
1810
2113
  if (target == null) {
1811
2114
  return;
@@ -1816,15 +2119,17 @@ var DOMUtils = (function () {
1816
2119
  if (target instanceof NodeList || target instanceof Array) {
1817
2120
  target = target;
1818
2121
  for (const element of target) {
1819
- DOMUtilsContext.hide(element);
2122
+ DOMUtilsContext.hide(element, checkVisiblie);
1820
2123
  }
1821
2124
  }
1822
2125
  else {
1823
2126
  target = target;
1824
2127
  target.style.display = "none";
1825
- if (DOMUtilsCommonUtils.isShow(target)) {
1826
- /* 仍然是显示,尝试使用强覆盖 */
1827
- target.style.setProperty("display", "none", "important");
2128
+ if (checkVisiblie) {
2129
+ if (DOMUtilsCommonUtils.isShow(target)) {
2130
+ /* 仍然是显示,尝试使用强覆盖 */
2131
+ target.style.setProperty("display", "none", "important");
2132
+ }
1828
2133
  }
1829
2134
  }
1830
2135
  }
@@ -1848,9 +2153,15 @@ var DOMUtils = (function () {
1848
2153
  }
1849
2154
  let DOMUtilsContext = this;
1850
2155
  if (typeof element === "string") {
1851
- element = DOMUtilsContext.windowApi.document.querySelector(element);
2156
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
2157
+ }
2158
+ if (isNodeList(element)) {
2159
+ // 设置
2160
+ element.forEach(($ele) => {
2161
+ DOMUtilsContext.fadeIn($ele, duration, callback);
2162
+ });
2163
+ return;
1852
2164
  }
1853
- element = element;
1854
2165
  element.style.opacity = "0";
1855
2166
  element.style.display = "";
1856
2167
  let start = null;
@@ -1893,9 +2204,15 @@ var DOMUtils = (function () {
1893
2204
  return;
1894
2205
  }
1895
2206
  if (typeof element === "string") {
1896
- element = DOMUtilsContext.windowApi.document.querySelector(element);
2207
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
2208
+ }
2209
+ if (isNodeList(element)) {
2210
+ // 设置
2211
+ element.forEach(($ele) => {
2212
+ DOMUtilsContext.fadeOut($ele, duration, callback);
2213
+ });
2214
+ return;
1897
2215
  }
1898
- element = element;
1899
2216
  element.style.opacity = "1";
1900
2217
  let start = null;
1901
2218
  let timer = null;
@@ -1921,24 +2238,34 @@ var DOMUtils = (function () {
1921
2238
  /**
1922
2239
  * 切换元素的显示和隐藏状态
1923
2240
  * @param element 当前元素
2241
+ * @param checkVisiblie 是否检测元素是否显示
1924
2242
  * @example
1925
2243
  * // 如果元素a.xx当前是隐藏,则显示,如果是显示,则隐藏
1926
2244
  * DOMUtils.toggle(document.querySelector("a.xx"))
1927
2245
  * DOMUtils.toggle("a.xx")
1928
2246
  */
1929
- toggle(element) {
2247
+ toggle(element, checkVisiblie) {
1930
2248
  let DOMUtilsContext = this;
1931
2249
  if (typeof element === "string") {
1932
- element = DOMUtilsContext.windowApi.document.querySelector(element);
2250
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
1933
2251
  }
1934
2252
  if (element == null) {
1935
2253
  return;
1936
2254
  }
1937
- if (getComputedStyle(element).getPropertyValue("display") === "none") {
1938
- DOMUtilsContext.show(element);
2255
+ if (isNodeList(element)) {
2256
+ // 设置
2257
+ element.forEach(($ele) => {
2258
+ DOMUtilsContext.toggle($ele);
2259
+ });
2260
+ return;
2261
+ }
2262
+ if (DOMUtilsContext.windowApi.globalThis
2263
+ .getComputedStyle(element)
2264
+ .getPropertyValue("display") === "none") {
2265
+ DOMUtilsContext.show(element, checkVisiblie);
1939
2266
  }
1940
2267
  else {
1941
- DOMUtilsContext.hide(element);
2268
+ DOMUtilsContext.hide(element, checkVisiblie);
1942
2269
  }
1943
2270
  }
1944
2271
  /**