wrap
1.6

Element.wrap(element, wrapper[, attributes]) -> HTMLElement
someElement.wrap(wrapper[, attributes]) -> HTMLElement

element 表示的元素放入到参数 wrapper 指定的元素内部,返回 wrapper

在 Internet Explorer 中,如果对 textarea 元素使用 wrap 实例方法(如 $('foo').wrap('p')),将会引发错误。这是因为 IE 对 HTML 进行了一些私下的扩展,而 wraptextarea 扩展后的一个属性。在这种情形下,请使用一般的版本(Element.wrap('foo', 'p'))。

如果页面上存在指定的元素,Element#wrap 会在恰当的位置封装它——元素在页面上的的位置不会发生变化。

参数 wrapper 可以是一个当前已有的 HTMLElement,也可以是一个能够被实际创建的 HTML 标签。可选的参数 attributes 包含一个属性/值对的列表,Prototype 调用 Element#writeAttribute 方法将属性/值对设置为 wrapper 的属性。

样例

初始 HTML

<table id="data"> 
	<tr> 
		<th>Foo</th>
		<th>Bar</th> 
	</tr> 
	<tr> 
		<td>1</td> 
		<td>2</td>
	</tr> 
</table>

JavaScript

// 方式 1:
var div = new Element('div', { 'class': 'table-wrapper' }); 
$('data').wrap(div); 
// 方式 2:
$('data').wrap('div', { 'class': 'table-wrapper' }); 
// 两种方式是一样的,均返回 DIV 

最终的 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>