当 HTML 作为参数传入时,jQuery 的 replaceWith()和 html()函数之间的区别是什么?
replaceWith()
html()
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>让我失去了我的夜晚!)
</center>
使用 html ()和 replaceWith () Jquery 函数有两种方法。
<div id="test_id"> <p>My Content</p> </div>
Html () vs Replace With ()
var html = $('#test_id p').html();将返回“我的内容”
var html = $('#test_id p').html();
但是 var replaceWith = $('#test_id p').replaceWith();将返回 <p>My Content</p>.
var replaceWith = $('#test_id p').replaceWith();
<p>My Content</p>
Html (‘ value’) vs replaceWith (‘ value’)
$('#test_id p').html('<h1>H1 content</h1>');会给你以下输出。
$('#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>');会给你以下输出。
$('#test_id p').replaceWith('<h1>H1 content</h1>');
<div id="test_id"> <h1>H1 content</h1> </div>
知道 .empty().append()也可以代替 .html()使用也是有用的。在下面显示的基准测试中,这样做会更快,但只有在需要多次调用这个函数的情况下才会这样做。
.empty().append()
.html()
见: https://jsperf.com/jquery-html-vs-empty-append-test