replace
replace(element[, html]) -> HTMLElement
使用 html
参数指定的内容替换 element
,返回被替换的 element
。
译注:该方法类似于 IE 下的 element.outerHTML = html
当用于 Opera 9 的 input
元素时,若将 replace
当作实例的方法调用(如:
$('foo').replace('<p>Bar</p>')
),会引发错误。在
Web Forms 2 草案中,replace
是 input
的一个保留属性。在这种情形下,请使用一般的版本(
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'