Element.replace - Prototype JavaScript 框架

Xunxin Prototype API

replace

replace(element[, html]) -> HTMLElement

使用 html 参数指定的内容替换 element,返回被替换的 element
译注:该方法类似于 IE 下的 element.outerHTML = html

当用于 Opera 9 的 input 元素时,若将 replace 当作实例的方法调用(如: $('foo').replace('<p>Bar</p>')),会引发错误。在 Web Forms 2 草案中,replaceinput 的一个保留属性。在这种情形下,请使用一般的版本( Element.replace('foo', '<p>Bar</p>'))。

html 参数可以是纯文本,一个 HTML 片断或者任意具有 toString 方法的 JavaScript 对象。

如果 html 参数中包括 <script> 标签,在 element 被替换后,<script> 标签内的脚本将会被执行(Element.replace() 内部调用了 String#evalScripts)。

注意:如果没有指定 html 参数,Element.replace 将简单的移除 element。然而,使用 Element.remove 方法更高效并且更标准。

样例

<div id="food">
	<div id="fruits">
		<p id="first">Kiwi, banana <em>and</em> apple.</p>
	</div>
</div> 

传递一个 HTML 片断:

$('first').replace('<ul id="favorite"><li>kiwi</li><li>banana</li><li>apple</li></ul>');
// -> HTMLElement (p#first) 
$('fruits').innerHTML; // -> '<ul id="favorite"><li>kiwi</li><li>banana</li><li>apple</li></ul>'
			

这一次包括一个 <script> 标签:

$('favorite').replace('<p id="still-first">Melon, oranges <em>and</em> grapes.</p><script>alert("removed!")</script>');
// -> 返回 HTMLElement (ul#favorite) 并弹出一个提示框,显示“removed!” 
$('fruits').innerHTML
// -> '<p id="still-first">Melon, oranges <em>and</em> grapes.</p>'

使用纯文本:

$('still-first').replace('Melon, oranges and grapes.');
// -> HTMLElement (p#still-first) 
$('fruits').innerHTML 
// -> 'Melon, oranges and grapes.' 

最后,应用 toString() 方法:

$('fruits').replace(123); 
// -> HTMLElement 
$('food').innerHTML;
// -> '123'