jQuery的replaceWith()和html()之间有什么区别?

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

拿这个HTML代码:

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

这样做:

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

将导致:

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

这样做:

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

将导致:

 Aloha World 

所以html()replace了元素的内容,而replaceWith()replace了实际的元素。

replaceWith()将replace当前元素,而html()只是replace内容。

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

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

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

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

1.)html()vs replaceWith()

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

但是var replaceWith = $('#test_id p').replaceWith(); 将返回<p>My Content</p>的整个DOM对象。


2.)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> 

老问题,但这可能有助于某人。

如果您的HTML无效,在Internet Explorer和Chrome / Firefox中如何使用这些function会有一些差异。

清理你的HTML,他们将按照logging工作。

(不closures我的</center>花费我的晚上!)

知道.empty().append()也可以用来代替.html() 。 在下面显示的基准testing中,速度更快,但只有在需要多次调用此函数的情况下。

请参阅: https : //jsperf.com/jquery-html-vs-empty-append-test