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

时间:2009-04-08 17:07:20

标签: jquery

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

5 个答案:

答案 0 :(得分:273)

获取此HTML代码:

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

这样做的:

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

将导致:

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

这样做的:

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

将导致:

Aloha World

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

答案 1 :(得分:31)

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

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

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

答案 2 :(得分:3)

有两种方法可以使用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();将返回整个DOM对象 <p>My Content</p>


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>

答案 3 :(得分:2)

老问题,但这可能对某人有所帮助。

如果您的HTML无效,这些功能在Internet Explorer和Chrome / Firefox中的运行方式存在一些差异。

清理HTML,它们将按照文档记录的方式工作。

(我的晚上没有关闭我的</center>花费我!)

答案 4 :(得分:1)

知道null也可以用来代替getSupportActionBar也许有用。在下面显示的基准测试中,这个速度更快,但只有在需要多次调用此函数时才会更快。

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