Какая разница между функциями jQuery replaceWith() и html(), когда HTML передается в качестве параметра?
Какая разница между jQuery replaceWith() и html()?
Ответ 1
Возьмите этот код HTML:
<div id="mydiv">Hello World</div>
Doing:
$('#mydiv').html('Aloha World');
приведет к:
<div id="mydiv">Aloha World</div>
Doing:
$('#mydiv').replaceWith('Aloha World');
приведет к:
Aloha World
Итак html() заменяет содержимое элемента, а replaceWith() заменяет действительный элемент.
Ответ 2
replaceWith() заменит текущий элемент, тогда как html() просто заменяет содержимое.
Обратите внимание, что replaceWith() фактически не удалит элемент, а просто удалит его из DOM и вернет его вам в коллекции.
Пример для Peter: http://jsbin.com/ofirip/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>
Ответ 4
Старый вопрос, но это может помочь кому-то.
Есть некоторые отличия в том, как эти функции работают в Internet Explorer и Chrome/Firefox, если ваш HTML недопустим.
Очистите свой HTML, и они будут работать как задокументированные.
(Не закрывая мой </center>
, стоите мне вечером!)
Ответ 5
Также может быть полезно знать, что .empty().append()
также можно использовать вместо .html()
. В приведенном ниже эталоне это быстрее, но только если вам нужно многократно вызывать эту функцию.
Смотрите: https://jsperf.com/jquery-html-vs-empty-append-test