JQuery 的 replace With()和 html()有什么区别?

当 HTML 作为参数传入时,jQuery 的 replaceWith()html()函数之间的区别是什么?

79265 次浏览

ReplaceWith ()将替换当前元素,而 html ()只是替换内容。

请注意,replaceWith ()实际上不会删除元素,而只是将其从 DOM 中删除并在集合中返回给您。

Peter 的一个例子: http://jsbin.com/ofirip/2

以下面这段 HTML 代码为例:

<div id="mydiv">Hello World</div>

做法:

$('#mydiv').html('Aloha World');

将导致:

<div id="mydiv">Aloha World</div>

做法:

$('#mydiv').replaceWith('Aloha World');

将导致:

Aloha World

因此,Html ()替换元素的内容,而 用()代替替换实际的元素。

老问题了,不过这个可能对某人有帮助。

如果你的 HTML 是无效的,那么这些函数在 Internet Explorer 和 Chrome/Firefox 中的运行方式有所不同。

清理您的 HTML,它们将作为文档工作。

(没有关闭我的 </center>让我失去了我的夜晚!)

使用 html ()和 replaceWith () Jquery 函数有两种方法。

<div id="test_id">
<p>My Content</p>
</div>

Html () vs Replace With ()

var html = $('#test_id p').html();将返回“我的内容”

但是 var replaceWith = $('#test_id p').replaceWith();将返回 <p>My Content</p>.


Html (‘ value’) vs replaceWith (‘ value’)

$('#test_id p').html('<h1>H1 content</h1>');会给你以下输出。

<div id="test_id">
<p><h1>H1 content</h1></p>
</div>

但是 $('#test_id p').replaceWith('<h1>H1 content</h1>');会给你以下输出。

<div id="test_id">
<h1>H1 content</h1>
</div>

知道 .empty().append()也可以代替 .html()使用也是有用的。在下面显示的基准测试中,这样做会更快,但只有在需要多次调用这个函数的情况下才会这样做。

见: https://jsperf.com/jquery-html-vs-empty-append-test