uni-ticket-system/node_modules/licia/$insert.js
2023-12-05 10:11:10 +08:00

42 lines
1.3 KiB
JavaScript

var each = require('./each');
var $safeEls = require('./$safeEls');
var isStr = require('./isStr');
exports = {
before: insertFactory('beforebegin'),
after: insertFactory('afterend'),
append: insertFactory('beforeend'),
prepend: insertFactory('afterbegin')
};
function insertFactory(type) {
return function(nodes, val) {
nodes = $safeEls(nodes);
each(nodes, function(node) {
if (isStr(val)) {
node.insertAdjacentHTML(type, val);
} else {
var parentNode = node.parentNode;
switch (type) {
case 'beforebegin':
if (parentNode) {
parentNode.insertBefore(val, node);
}
break;
case 'afterend':
if (parentNode) {
parentNode.insertBefore(val, node.nextSibling);
}
break;
case 'beforeend':
node.appendChild(val);
break;
case 'afterbegin':
node.prepend(val);
break;
}
}
});
};
}
module.exports = exports;