@polyv/utils-dom 3.0.0

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/dom-wrap.d.ts ADDED
@@ -0,0 +1,751 @@
1
+ import { DOMWrapMember, InsertTarget, TraversalUntil } from './types';
2
+ import { IValueFunction, IEventHandler, IPosition } from './interfaces';
3
+ /**
4
+ * DOMWrap 类型 forEach/some/every/filter 的 callback。
5
+ */
6
+ export interface IDOMWrapIterator {
7
+ (member: DOMWrapMember, index: number, list: ArrayLike<DOMWrapMember>): unknown;
8
+ }
9
+ /**
10
+ * DOM 包装类。
11
+ */
12
+ export declare class DOMWrap implements ArrayLike<DOMWrapMember> {
13
+ [index: number]: DOMWrapMember;
14
+ /**
15
+ * 当前包含的节点数。
16
+ */
17
+ length: number;
18
+ /**
19
+ * DOM 包装类。
20
+ * @param nodes 列表节点。
21
+ */
22
+ constructor(nodes: ArrayLike<DOMWrapMember>);
23
+ /**
24
+ * 返回包含当前所有节点的数组。
25
+ * @returns 包含当前所有节点的数组。
26
+ */
27
+ toArray(): DOMWrapMember[];
28
+ /**
29
+ * 即数组的 indexOf。
30
+ * @param node 指定节点。
31
+ * @returns 序号索引。
32
+ */
33
+ indexOf(node: DOMWrapMember): number;
34
+ /**
35
+ * 即数组的 forEach。
36
+ */
37
+ forEach(callback: IDOMWrapIterator): void;
38
+ /**
39
+ * 即数组的 some。
40
+ */
41
+ some(callback: IDOMWrapIterator): boolean;
42
+ /**
43
+ * 即数组的 every。
44
+ */
45
+ every(callback: IDOMWrapIterator): boolean;
46
+ /**
47
+ * 功能与数组的 filter 基本一致,但返回值是 DOMWrap 对象。
48
+ */
49
+ filter(callback: IDOMWrapIterator): DOMWrap;
50
+ /**
51
+ * 获取指定索引的节点。
52
+ * @param i 索引。
53
+ * @returns 指定索引的节点。
54
+ */
55
+ get(i: number): DOMWrapMember;
56
+ /**
57
+ * 返回仅包含指定索引节点的 DOMWrap 对象。
58
+ * @param i 索引。
59
+ * @returns 仅包含指定索引节点的 DOMWrap 对象。
60
+ */
61
+ eq(i: number): DOMWrap;
62
+ /**
63
+ * 返回仅包含当前第一个节点的 DOMWrap 对象。
64
+ * @returns 仅包含当前第一个节点的 DOMWrap 对象。
65
+ */
66
+ first(): DOMWrap;
67
+ /**
68
+ * 返回仅包含当前最后一个节点的 DOMWrap 对象。
69
+ * @returns 仅包含当前最后一个节点的 DOMWrap 对象。
70
+ */
71
+ last(): DOMWrap;
72
+ /**
73
+ * 返回包含当前节点及匹配到的新节点的 DOMWrap 对象(节点顺序与其在文档树中的顺序一致)。
74
+ * @example
75
+ * ```typescript
76
+ * // <p id="p1"></p>
77
+ * // <div><p id="p2"></p></div>
78
+ * $('div').add('p'); // [p#p1, div, p#p2]
79
+ * ```
80
+ * @param selector 选择器。
81
+ * @param context 上下文。
82
+ * @returns 包含上述节点的 DOMWrap 对象。
83
+ */
84
+ add(selector: string, context?: HTMLElement | Document): DOMWrap;
85
+ /**
86
+ * 返回包含当前节点及指定节点的 DOMWrap 对象(节点顺序与其在文档树中的顺序一致)。
87
+ * @example
88
+ * ```typescript
89
+ * // <div><p id="p2"></p></div>
90
+ * $('div').add(document.querySelector('#p2')); // [div, p#p2]
91
+ * ```
92
+ * @param nodes 指定节点。
93
+ * @returns 包含上述节点的 DOMWrap 对象。
94
+ */
95
+ add(nodes: ArrayLike<DOMWrapMember>): DOMWrap;
96
+ /**
97
+ * 遍历当前所有节点。
98
+ * @example
99
+ * ```typescript
100
+ * $('div').each(function(i: number, member: DOMWrapMember) {
101
+ * console.log(i);
102
+ * return i < 10; // 仅遍历前 10 项
103
+ * });
104
+ * ```
105
+ * @param callback 对每个节点执行的操作函数,返回值为 false 时中断遍历。
106
+ * @returns 当前对象。
107
+ */
108
+ each(callback: (this: DOMWrapMember, index?: number, member?: DOMWrapMember) => unknown): DOMWrap;
109
+ /**
110
+ * 获取当前第一个节点的属性值。
111
+ * @example
112
+ * ```typescript
113
+ * // <input readonly="readonly" />
114
+ * $('input').attr('readonly'); // "readonly"
115
+ * ```
116
+ * @param name 属性名。
117
+ * @returns 属性值。
118
+ */
119
+ attr(name: string): string;
120
+ /**
121
+ * 设置当前所有节点的属性值。
122
+ * @example
123
+ * ```typescript
124
+ * $('input').attr('readonly', 'readonly');
125
+ * ```
126
+ * @param name 属性名。
127
+ * @param value 属性值。
128
+ * @returns 当前对象。
129
+ */
130
+ attr(name: string, value: string | boolean | IValueFunction<string | boolean>): DOMWrap;
131
+ /**
132
+ * 设置当前所有节点的属性值。
133
+ * @example
134
+ * ```typescript
135
+ * $('input').attr({
136
+ * readonly: 'readonly'
137
+ * });
138
+ * ```
139
+ * @param kvPairs 属性键值对。
140
+ * @returns 当前对象。
141
+ */
142
+ attr(kvPairs: {
143
+ [key: string]: string | boolean | IValueFunction<string | boolean>;
144
+ }): DOMWrap;
145
+ /**
146
+ * 移除当前所有节点的属性值。
147
+ * @example
148
+ * ```typescript
149
+ * $('div').removeAttr('id');
150
+ * ```
151
+ * @param names 属性名。多个属性名可用空格隔开,也可以传入数组。
152
+ * @returns 当前对象。
153
+ */
154
+ removeAttr(names: string | string[]): DOMWrap;
155
+ /**
156
+ * 获取当前第一个节点的特性值。
157
+ * @param name 特性名。
158
+ * @example
159
+ * ```typescript
160
+ * // <input readonly="readonly" />
161
+ * $('input').prop('readOnly'); // true
162
+ * ```
163
+ * @returns 特性值。
164
+ */
165
+ prop(name: string): unknown;
166
+ /**
167
+ * 设置当前所有节点的特性值。
168
+ * @example
169
+ * ```typescript
170
+ * $('input').prop('readOnly', true);
171
+ * ```
172
+ * @param name 特性名。
173
+ * @param value 特性值。
174
+ * @returns 当前对象。
175
+ */
176
+ prop(name: string, value: unknown): DOMWrap;
177
+ /**
178
+ * 设置当前所有节点的特性值。
179
+ * @example
180
+ * ```typescript
181
+ * $('input').prop({
182
+ * readOnly: true
183
+ * });
184
+ * ```
185
+ * @param kvPairs 特性键值对。
186
+ * @returns 当前对象。
187
+ */
188
+ prop(kvPairs: {
189
+ [key: string]: unknown | IValueFunction<unknown>;
190
+ }): DOMWrap;
191
+ /**
192
+ * 获取当前第一个节点的自定义数据项值。
193
+ * @example
194
+ * ```typescript
195
+ * $('body').data('testData');
196
+ * ```
197
+ * @param key 数据项键。
198
+ * @returns 数据项值。
199
+ */
200
+ data(key: string): unknown;
201
+ /**
202
+ * 设置当前所有节点的自定义数据项值。
203
+ * @example
204
+ * ```typescript
205
+ * $('body').data('testData', 'my test data');
206
+ * ```
207
+ * @param key 数据项键。
208
+ * @param value 数据项值。
209
+ * @returns 当前对象。
210
+ */
211
+ data(key: string, value: unknown | IValueFunction<unknown>): DOMWrap;
212
+ /**
213
+ * 设置当前所有节点的自定义数据项值。
214
+ * @example
215
+ * ```typescript
216
+ * $('body').data({
217
+ * testData: 'my test data'
218
+ * });
219
+ * ```
220
+ * @param kvPairs 数据项键值对。
221
+ * @returns 当前对象。
222
+ */
223
+ data(kvPairs: {
224
+ [key: string]: unknown | IValueFunction<unknown>;
225
+ }): DOMWrap;
226
+ /**
227
+ * 移除当前所有节点的自定义数据项。
228
+ * @example
229
+ * ```typescript
230
+ * $('body').removeData('testData'); // remove single
231
+ * $('body').removeData(); // remove all
232
+ * ```
233
+ * @param keys 数据项键。多个键可用空格隔开,也可以传入数组。不传时清理所有自定义数据项。
234
+ * @returns 当前对象。
235
+ */
236
+ removeData(keys?: string | string[]): DOMWrap;
237
+ /**
238
+ * 获取当前第一个节点的内部 html 代码。
239
+ * @example
240
+ * ```typescript
241
+ * // <div><p>text</p></div>
242
+ * $('div').html(); // "<p>text</p>"
243
+ * ```
244
+ * @returns 当前第一个节点的内部 html 代码。
245
+ */
246
+ html(): string;
247
+ /**
248
+ * 设置当前所有节点的内部 html 代码。
249
+ * @example
250
+ * ```typescript
251
+ * $('div').html('<p>text</p>');
252
+ * ```
253
+ * @param html html 代码。
254
+ * @returns 当前对象。
255
+ */
256
+ html(html: string): DOMWrap;
257
+ /**
258
+ * 获取当前第一个节点的内部文本内容。
259
+ * @returns 当前第一个节点的内部文本内容。
260
+ */
261
+ text(): string;
262
+ /**
263
+ * 设置当前所有节点的内部文本内容。
264
+ * @param text 文本内容。
265
+ * @returns 当前对象。
266
+ */
267
+ text(text: string): DOMWrap;
268
+ /**
269
+ * 获取当前第一个节点的 value 特性值。
270
+ * @example
271
+ * ```typescript
272
+ * $('input').val();
273
+ * ```
274
+ * @returns 当前第一个节点的 value 特性值。
275
+ */
276
+ val(): string;
277
+ /**
278
+ * 设置当前所有节点的 value 特性值。
279
+ * @example
280
+ * ```typescript
281
+ * $('input').val('value');
282
+ * ```
283
+ * @param value value 值。
284
+ * @returns 当前对象。
285
+ */
286
+ val(value: string): DOMWrap;
287
+ /**
288
+ * 获取当前第一个节点的样式属性值。
289
+ * @example
290
+ * ```typescript
291
+ * $('div').css('color');
292
+ * ```
293
+ * @param name 样式属性名。
294
+ * @returns 样式属性值。
295
+ */
296
+ css(name: string): string;
297
+ /**
298
+ * 设置当前所有节点的样式属性值。
299
+ * @example
300
+ * ```typescript
301
+ * $('div').css('color', 'red');
302
+ * ```
303
+ * @param name 样式属性名。
304
+ * @param value 样式属性值。
305
+ * @returns 当前对象。
306
+ */
307
+ css(name: string, value: number | string | IValueFunction<number | string>): DOMWrap;
308
+ /**
309
+ * 设置当前所有节点的样式属性值。
310
+ * @example
311
+ * ```typescript
312
+ * $('div').css({
313
+ * color: 'red',
314
+ * 'font-size': '16px'
315
+ * });
316
+ * ```
317
+ * @param kvPairs 样式属性键值对。
318
+ * @returns 当前对象。
319
+ */
320
+ css(kvPairs: {
321
+ [key: string]: number | string | IValueFunction<number | string>;
322
+ }): DOMWrap;
323
+ /**
324
+ * 显示当前所有节点。
325
+ * @returns 当前对象。
326
+ */
327
+ show(): DOMWrap;
328
+ /**
329
+ * 隐藏当前所有节点。
330
+ * @returns 当前对象。
331
+ */
332
+ hide(): DOMWrap;
333
+ /**
334
+ * 为当前所有节点添加样式类。
335
+ * @example
336
+ * ```typescript
337
+ * // <div></div>
338
+ * $('div').addClass('visible'); // <div class="visible"></div>
339
+ * ```
340
+ * @example
341
+ * ```typescript
342
+ * // <div></div>
343
+ * $('div').addClass('visible bg'); // <div class="visible bg"></div>
344
+ * ```
345
+ * @example
346
+ * ```typescript
347
+ * // <div></div>
348
+ * $('div').addClass(['visible', 'bg']); // <div class="visible bg"></div>
349
+ * ```
350
+ * @param classNames 样式类名。多个样式类名可用空格隔开,也可以传入数组。
351
+ * @returns 当前对象。
352
+ */
353
+ addClass(classNames: string | string[]): DOMWrap;
354
+ /**
355
+ * 为当前所有节点移除样式类。
356
+ * @example
357
+ * ```typescript
358
+ * // <div class="visible bg"></div>
359
+ * $('div').removeClass('bg'); // <div class="visible"></div>
360
+ * ```
361
+ * @example
362
+ * ```typescript
363
+ * // <div class="visible bg"></div>
364
+ * $('div').removeClass('visible bg'); // <div></div>
365
+ * ```
366
+ * @example
367
+ * ```typescript
368
+ * // <div class="visible bg"></div>
369
+ * $('div').removeClass(['visible', 'bg']); // <div></div>
370
+ * ```
371
+ * @example
372
+ * ```typescript
373
+ * // <div class="visible bg"></div>
374
+ * $('div').removeClass(); // <div></div>
375
+ * ```
376
+ * @param classNames 样式类名。多个样式类名可用空格隔开,也可以传入数组。不传时移除所有样式类。
377
+ * @returns 当前对象。
378
+ */
379
+ removeClass(classNames?: string | string[]): DOMWrap;
380
+ /**
381
+ * 检查当前是否至少有一个节点包含指定样式类。
382
+ * @example
383
+ * ```typescript
384
+ * // <div class="visible"></div>
385
+ * // <div></div>
386
+ * $('div').hasClass('visible'); // true
387
+ * ```
388
+ * @param className 指定样式类。
389
+ * @returns 当前是否至少有一个节点包含指定样式类。
390
+ */
391
+ hasClass(className: string): boolean;
392
+ /**
393
+ * 对当前每个节点,如果包含指定样式类,则移除;否则添加。
394
+ * @example
395
+ * ```typescript
396
+ * // <div class="visible bg"></div>
397
+ * // <div></div>
398
+ * $('div').toggleClass('visible');
399
+ * // <div class="bg"></div>
400
+ * // <div class="visible"></div>
401
+ * ```
402
+ * @example
403
+ * ```typescript
404
+ * // <div class="visible bg"></div>
405
+ * // <div></div>
406
+ * $('div').toggleClass('visible bg');
407
+ * // <div></div>
408
+ * // <div class="visible bg"></div>
409
+ * ```
410
+ * @example
411
+ * ```typescript
412
+ * // <div class="visible"></div>
413
+ * // <div class="bg"></div>
414
+ * $('div').toggleClass(['visible', 'bg']);
415
+ * // <div class="bg"></div>
416
+ * // <div class="visible"></div>
417
+ * ```
418
+ * @param classNames 样式类名。多个样式类名可用空格隔开,也可以传入数组。
419
+ * @returns 当前对象。
420
+ */
421
+ toggleClass(classNames: string | string[]): DOMWrap;
422
+ /**
423
+ * 计算当前第一个节点的宽度。
424
+ * @returns 宽度(像素)。
425
+ */
426
+ width(): number;
427
+ /**
428
+ * 计算当前第一个节点的高度。
429
+ * @returns 高度(像素)。
430
+ */
431
+ height(): number;
432
+ /**
433
+ * 计算当前第一个节点的内部宽度(包含 padding)。
434
+ * @returns 内部宽度(像素)。
435
+ */
436
+ innerWidth(): number;
437
+ /**
438
+ * 计算当前第一个节点的内部高度(包含 padding)。
439
+ * @returns 内部高度(像素)。
440
+ */
441
+ innerHeight(): number;
442
+ /**
443
+ * 计算当前第一个节点的外部宽度(包含 padding、border,也可以包含 margin)。
444
+ * @param includeMargin 是否包含 margin。
445
+ * @returns 外部宽度(像素)。
446
+ */
447
+ outerWidth(includeMargin?: boolean): number;
448
+ /**
449
+ * 计算当前第一个节点的外部高度(包括 padding、border,也可以包含 margin)。
450
+ * @param includeMargin 是否包含 margin。
451
+ * @returns 外部高度(像素)。
452
+ */
453
+ outerHeight(includeMargin?: boolean): number;
454
+ /**
455
+ * 获取当前第一个节点的 scrollTop。
456
+ * @returns 当前第一个节点的 scrollTop。
457
+ */
458
+ scrollTop(): number;
459
+ /**
460
+ * 设置当前所有节点的 scrollTop。
461
+ * @param value scrollTop 值。
462
+ * @returns 当前对象。
463
+ */
464
+ scrollTop(value: number | IValueFunction<number>): DOMWrap;
465
+ /**
466
+ * 获取当前第一个节点的 scrollLeft。
467
+ * @returns 当前第一个节点的 scrollLeft。
468
+ */
469
+ scrollLeft(): number;
470
+ /**
471
+ * 设置当前所有节点的 scrollLeft。
472
+ * @param value scrollLeft 值。
473
+ * @returns 当前对象。
474
+ */
475
+ scrollLeft(value: number | IValueFunction<number>): DOMWrap;
476
+ /**
477
+ * 获取当前第一个节点相对于 document 的位置。
478
+ * @returns 当前第一个节点相对于 document 的位置。
479
+ */
480
+ offset(): IPosition;
481
+ /**
482
+ * 获取当前第一个节点在同级元素中的位置。
483
+ * @example
484
+ * ```typescript
485
+ * // <ul>
486
+ * // <li></li>
487
+ * // <li id="item"></li>
488
+ * // </ul>
489
+ * $('#item').index(); // 1
490
+ * ```
491
+ * @returns 位置序号。
492
+ */
493
+ index(): number;
494
+ /**
495
+ * 查找当前所有节点的子元素。
496
+ * @example
497
+ * ```typescript
498
+ * // <ul id="list">
499
+ * // <li></li>
500
+ * // <li class="item"></li>
501
+ * // <li class="item"></li>
502
+ * // </ul>
503
+ * $('#list').children(); // [li, li.item, li.item]
504
+ * $('#list').children('.item'); // [li.item, li.item]
505
+ * ```
506
+ * @param selector 选择器。不为空时仅返回符合选择器规则的元素。
507
+ * @returns 包含查找结果的 DOMWrap 对象。
508
+ */
509
+ children(selector?: string): DOMWrap;
510
+ /**
511
+ * 查找当前所有节点的同级元素。
512
+ * @example
513
+ * ```typescript
514
+ * // <ul>
515
+ * // <li id="first-item"></li>
516
+ * // <li></li>
517
+ * // <li class="last-item"></li>
518
+ * // </ul>
519
+ * $('#first-item').siblings(); // [li, li.last-item]
520
+ * $('#first-item').siblings('.last-item'); // [li.last-item]
521
+ * ```
522
+ * @param selector 选择器。不为空时仅返回符合选择器规则的元素。
523
+ * @returns 包含查找结果的 DOMWrap 对象。
524
+ */
525
+ siblings(selector?: string): DOMWrap;
526
+ /**
527
+ * 查找当前所有节点的后一个同级元素。
528
+ * @param selector 选择器。不为空时仅返回符合选择器规则的元素。
529
+ * @returns 包含查找结果的 DOMWrap 对象。
530
+ */
531
+ next(selector?: string): DOMWrap;
532
+ /**
533
+ * 查找当前所有节点后的所有同级元素。
534
+ * @param selector 选择器。不为空时仅返回符合选择器规则的元素。
535
+ * @returns 包含查找结果的 DOMWrap 对象。
536
+ */
537
+ nextAll(selector?: string): DOMWrap;
538
+ /**
539
+ * 查找当前所有节点的前一个同级元素。
540
+ * @param selector 选择器。不为空时仅返回符合选择器规则的元素。
541
+ * @returns 包含查找结果的 DOMWrap 对象。
542
+ */
543
+ prev(selector?: string): DOMWrap;
544
+ /**
545
+ * 查找当前所有节点前的所有同级元素。
546
+ * @param selector 选择器。不为空时仅返回符合选择器规则的元素。
547
+ * @returns 包含查找结果的 DOMWrap 对象。
548
+ */
549
+ prevAll(selector?: string): DOMWrap;
550
+ /**
551
+ * 查找当前所有节点的父元素。
552
+ * @param selector 选择器。不为空时仅返回符合选择器规则的元素。
553
+ * @returns 包含查找结果的 DOMWrap 对象。
554
+ */
555
+ parent(selector?: string): DOMWrap;
556
+ /**
557
+ * 查找当前所有节点的祖先元素。
558
+ * @param selector 选择器。不为空时仅返回符合选择器规则的元素。
559
+ * @returns 包含查找结果的 DOMWrap 对象。
560
+ */
561
+ parents(selector?: string): DOMWrap;
562
+ /**
563
+ * 查找当前所有节点之后的同级元素,直到遇到符合指定规则的元素为止。
564
+ * @param until 截止元素或选择器规则。
565
+ * @param filter 选择器。不为空时仅返回符合选择器规则的元素。
566
+ * @returns 包含查找结果的 DOMWrap 对象。
567
+ */
568
+ nextUntil(until?: TraversalUntil, filter?: string): DOMWrap;
569
+ /**
570
+ * 查找当前所有节点之前的同级元素,直到遇到符合指定规则的元素为止。
571
+ * @param until 截止元素或选择器规则。
572
+ * @param filter 选择器。不为空时仅返回符合选择器规则的元素。
573
+ * @returns 包含查找结果的 DOMWrap 对象。
574
+ */
575
+ prevUntil(until?: TraversalUntil, filter?: string): DOMWrap;
576
+ /**
577
+ * 查找当前所有节点的祖先元素,直到遇到符合指定规则的元素为止。
578
+ * @param until 截止元素或选择器规则。
579
+ * @param filter 选择器。不为空时仅返回符合选择器规则的元素。
580
+ * @returns 包含查找结果的 DOMWrap 对象。
581
+ */
582
+ parentsUntil(until?: TraversalUntil, filter?: string): DOMWrap;
583
+ /**
584
+ * 在当前所有节点的最后一个子节点后插入目标节点(或其副本)。
585
+ * @param target 目标节点。
586
+ * @returns 当前对象。
587
+ */
588
+ append(target: InsertTarget): DOMWrap;
589
+ /**
590
+ * 在目标节点的最后一个子节点后插入当前所有节点(或其副本)。
591
+ * @param target 目标节点。
592
+ * @returns 包含被插入节点的 DOMWrap 对象。
593
+ */
594
+ appendTo(target: InsertTarget): DOMWrap;
595
+ /**
596
+ * 在当前所有节点的第一个子节点前插入目标节点(或其副本)。
597
+ * @param target 目标节点。
598
+ * @returns 当前对象。
599
+ */
600
+ prepend(target: InsertTarget): DOMWrap;
601
+ /**
602
+ * 在目标节点的第一个子节点前插入当前所有节点(或其副本)。
603
+ * @param target 目标节点。
604
+ * @returns 包含被插入节点的 DOMWrap 对象。
605
+ */
606
+ prependTo(target: InsertTarget): DOMWrap;
607
+ /**
608
+ * 在当前所有节点之前插入目标节点(或其副本)。
609
+ * @param target 目标节点。
610
+ * @returns 当前对象。
611
+ */
612
+ before(target: InsertTarget): DOMWrap;
613
+ /**
614
+ * 把当前节点(或其副本)插入到目标节点之前。
615
+ * @param target 目标节点。
616
+ * @returns 包含被插入节点的 DOMWrap 对象。
617
+ */
618
+ insertBefore(target: InsertTarget): DOMWrap;
619
+ /**
620
+ * 在当前所有节点之后插入目标节点(或其副本)。
621
+ * @example
622
+ * ```typescript
623
+ * $('div').after('<p>text</p>'); // 在每个 div 节点后插入 p 节点
624
+ * ```
625
+ * @param target 目标节点。
626
+ * @returns 当前对象。
627
+ */
628
+ after(target: InsertTarget): DOMWrap;
629
+ /**
630
+ * 把当前节点(或其副本)插入到目标节点之后。
631
+ * @param target 目标节点。
632
+ * @returns 包含被插入节点的 DOMWrap 对象。
633
+ */
634
+ insertAfter(target: InsertTarget): DOMWrap;
635
+ /**
636
+ * 把当前节点替换为目标节点(或其副本)。
637
+ * @param target 目标节点。
638
+ * @returns 当前对象。
639
+ */
640
+ replaceWith(target: InsertTarget): DOMWrap;
641
+ /**
642
+ * 把目标节点替换为当前节点(或其副本)。
643
+ * @example
644
+ * ```typescript
645
+ * // <div>text</div>
646
+ * // <div>text</div>
647
+ * $('<p>text</p>').replaceAll('div'); // 所有 div 都替换成 p
648
+ * ```
649
+ * @param target 目标节点。
650
+ * @returns 包含替换后节点的 DOMWrap 对象。
651
+ */
652
+ replaceAll(target: InsertTarget): DOMWrap;
653
+ /**
654
+ * 把当前所有节点从其所属文档中移除,并清除其数据。
655
+ * @example
656
+ * ```typescript
657
+ * $('div').remove(); // 移除所有 div
658
+ * ```
659
+ * @returns 当前对象。
660
+ */
661
+ remove(): DOMWrap;
662
+ /**
663
+ * 移除当前所有节点的所有后代节点,并清空其数据。
664
+ * @returns 当前对象。
665
+ */
666
+ empty(): DOMWrap;
667
+ /**
668
+ * 克隆当前所有节点。
669
+ * ```typescript
670
+ * // <div id="container"></div>
671
+ * const $container = $('#container').data('testData', 1);
672
+ * $container.clone().data('testData'); // undefined
673
+ * $container.clone(true).data('testData'); // 1
674
+ * ```
675
+ * @param withData 是否克隆节点数据。
676
+ * @param deepWithData 是否克隆后代节点数据。
677
+ * @returns 包含所有节点副本的 DOMWrap 对象。
678
+ */
679
+ clone(withData?: boolean, deepWithData?: boolean): DOMWrap;
680
+ /**
681
+ * 给当前所有节点的指定事件注册监听函数。
682
+ * @example
683
+ * ```typescript
684
+ * $('body').on('click', 'div', function() {
685
+ * console.log('click on div');
686
+ * });
687
+ *
688
+ * $('body').on('click', function(e) {
689
+ * if (e.target === e.currentTarget) {
690
+ * console.log('click on body');
691
+ * }
692
+ * });
693
+ * ```
694
+ * @param types 事件类型。多个事件类型用空格隔开,或者以数组传入。
695
+ * @param selector 代理元素选择器。为空时不代理元素,为函数时表示监听函数。
696
+ * @param handler 监听函数。
697
+ * @returns 当前对象。
698
+ */
699
+ on(types: string | string[], selector?: string | IEventHandler, handler?: IEventHandler): DOMWrap;
700
+ /**
701
+ * 给当前所有节点的指定事件注销监听函数。
702
+ * 不指定监听函数和代理元素选择器时,注销指定事件类型的所有监听函数;
703
+ * 不指定事件类型时注销所有事件的监听函数。
704
+ * @example
705
+ * ```typescript
706
+ * $('body').off('click', handler); // 移除 click 事件的 handler 监听函数
707
+ * $('body').off('click'); // 移除 click 事件的所有监听函数
708
+ * $('body').off(); // 移除所有事件的所有监听函数
709
+ * ```
710
+ * @param types 事件类型。多个事件类型用空格隔开,或者以数组传入。
711
+ * @param selector 代理元素选择器。不传或为空时不限制代理元素,为函数时表示监听函数。
712
+ * @param handler 监听函数。不传或为空时注销指定事件的所有监听函数。
713
+ * @returns 当前对象。
714
+ */
715
+ off(types?: string | string[], selector?: string | IEventHandler, handler?: IEventHandler): DOMWrap;
716
+ /**
717
+ * 触发当前所有节点的特定事件。
718
+ * @example
719
+ * ```typescript
720
+ * $('input[type=button]').trigger('click');
721
+ * ```
722
+ * @param type 事件类型。
723
+ * @returns 当前对象。
724
+ */
725
+ trigger(type: string): DOMWrap;
726
+ /**
727
+ * 触发当前所有节点的 focus 事件。
728
+ * @returns 当前对象。
729
+ */
730
+ focus(): DOMWrap;
731
+ /**
732
+ * 触发当前所有节点的 blur 事件。
733
+ * @returns 当前对象。
734
+ */
735
+ blur(): DOMWrap;
736
+ /**
737
+ * 触发当前所有节点的 click 事件。
738
+ * @returns 当前对象。
739
+ */
740
+ click(): DOMWrap;
741
+ /**
742
+ * 触发当前所有节点的 reset 事件。
743
+ * @returns 当前对象。
744
+ */
745
+ reset(): DOMWrap;
746
+ /**
747
+ * 触发当前所有节点的 submit 事件。
748
+ * @returns 当前对象。
749
+ */
750
+ submit(): DOMWrap;
751
+ }