code: function(nodeOptions) {
        var ranges = this.getOwnRanges(),
            node, nodes = [];
        if (ranges.length == 0) {
          return nodes;
        }
  
        for (var i = ranges.length; i--;) {
          node = this.doc.createElement(nodeOptions.nodeName);
          nodes.push(node);
          if (nodeOptions.className) {
            node.className = nodeOptions.className;
          }
          if (nodeOptions.cssStyle) {
            node.setAttribute('style', nodeOptions.cssStyle);
          }
          try {
            // This only works when the range boundaries are not overlapping other elements
            ranges[i].surroundContents(node);
            this.selectNode(node);
          } catch(e) {
            // fallback
            node.appendChild(ranges[i].extractContents());
            ranges[i].insertNode(node);
          }
        }
        return nodes;
      }
docs: Wraps current selection with the given node
  
  @param {Object} node The node to surround the selected elements with