wrap
1.6
Element.wrap(element, wrapper[, attributes]) -> HTMLElement
someElement.wrap(wrapper[, attributes]) -> HTMLElement
Wraps an element inside another, then returns the wrapper.
Using wrap as an instance method (e.g., $('foo').wrap('p')) causes errors in Internet Explorer when used on textarea elements. The wrap property is reserved on textareas as a proprietary extension to HTML. As a workaround, use the generic version instead (Element.wrap('foo', 'p')).
If the given element exists on the page, Element#wrap will wrap it in place — its position will remain the same.
The wrapper argument can be either an existing HTMLElement or a string representing the tag name of an element to be created. The optional attributes argument can contain a list of attribute/value pairs that will be set on the wrapper using Element#writeAttribute.
Examples
Original HTML
<table id="data">
<tr>
<th>Foo</th>
<th>Bar</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
</tr>
</table>
JavaScript
// approach 1:
var div = new Element('div', { 'class': 'table-wrapper' });
$('data').wrap(div);
// approach 2:
$('data').wrap('div', { 'class': 'table-wrapper' });
// examples are equivalent. both return the DIV.
Resulting HTML
<div class="table-wrapper">
<table id="data">
<tr>
<th>Foo</th>
<th>Bar</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
</tr>
</table>
</div>