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;
|