@mdui/jq
Version:
拥有和 jQuery 相似 API 的轻量级 JavaScript 工具库
27 lines (26 loc) • 1.01 kB
JavaScript
import { $ } from '../$.js';
import { eachArray } from '../shared/helper.js';
import './each.js';
import './get.js';
eachArray(['insertBefore', 'insertAfter'], (name, nameIndex) => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
$.fn[name] = function (target) {
const $element = nameIndex ? $(this.get().reverse()) : this; // 顺序和 jQuery 保持一致
const $target = $(target);
const result = [];
$target.each((index, target) => {
if (!target.parentNode) {
return;
}
$element.each((_, element) => {
const newItem = index
? element.cloneNode(true)
: element;
const existingItem = nameIndex ? target.nextSibling : target;
result.push(newItem);
target.parentNode.insertBefore(newItem, existingItem);
});
});
return $(nameIndex ? result.reverse() : result);
};
});