Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function () {
- function validateParameter(param) {
- if (typeof param === 'undefined' || param === '' || param === null) {
- throw Error('Invalid function parameter');
- }
- }
- function validateElement(element) {
- validateParameter(element);
- if (typeof element !== 'object' && typeof element !== 'string') {
- throw Error('Invalid element');
- }
- }
- function validateContents(contents) {
- validateParameter(contents);
- if (typeof contents !== 'object') {
- throw Error('Invalid contents');
- }
- if (!Array.isArray(contents)) {
- throw Error('contents must be array');
- }
- contents.forEach(function (x) {
- if (typeof x !== 'string' && typeof x !== 'number') {
- throw Error('Invalid parameter in contents');
- }
- });
- }
- function getElement(element) {
- if (typeof element === 'string') {
- const el = document.getElementById(element);
- if (!el) {
- throw Error('Invalid id selector');
- }
- return el;
- }
- return element;
- }
- function appendContentsToElement(element, contents) {
- element.innerHTML = '';
- const docFr = document.createDocumentFragment();
- const div = document.createElement('div');
- contents.forEach(function (x) {
- const itemToAdd = div.cloneNode(true);
- itemToAdd.innerHTML += x;
- docFr.appendChild(itemToAdd);
- });
- element.appendChild(docFr);
- }
- return function (element, contents) {
- validateElement(element);
- validateContents(contents);
- element = getElement(element);
- appendContentsToElement(element, contents);
- };
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement