function render()

in static/js/util/render.js [58:113]


function render(data, target) {
  var context = target || document.createDocumentFragment(),
    dataLength = data.length,
    i,
    item, elem, props, attrName,
    isNull;

  for (i = 0; i < dataLength; i++) {
    item = data[i];
    isNull = item === null || item === undefined || item === false;

    if (isNull) {
      continue;
    }

    // text node
    if (typeof item === 'string' || typeof item === 'number') {
      context.appendChild(document.createTextNode(item));
      continue;
    }

    // _elem
    if (typeof item[0] === 'string') {
      props = util.parseSelector(item[0]);
      elem = document.createElement(props.tag);

      item.shift();
      delete props.tag;

      if (util.isObject(item[0])) {
        for (attrName in item[0]) {
          props[attrName] = item[0][attrName];
        }
      }

      for (attrName in props) {
        elem.setAttribute(attrName, props[attrName]);
        delete props[attrName];
      }

      context.appendChild(render(item, elem));

      continue;
    }

    // node
    if (item.nodeType !== undefined) {
      context.appendChild(item);
      continue;
    }

    render(item, context);
  }

  return context;
}