Ответы:
Возьми этот 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 () заменяет фактический элемент.
replaceWith () заменит текущий элемент, тогда как html () просто заменит содержимое.
Обратите внимание, что replaceWith () на самом деле не удалит элемент, а просто удалит его из DOM и вернет вам в коллекции.
Пример для Питера: http://jsbin.com/ofirip/2
-1
и, надеюсь, это будет полезно для всех. :)
var $form = $target.closest('tr').replaceWith(html)
оказывается, $form
содержит элемент перед заменой. вздох
Существует два способа использования функций jquery html () и replaceWith ().
<div id="test_id">
<p>My Content</p>
</div>
1.) html () против replaceWith ()
var html = $('#test_id p').html();
вернет "Мой контент"
Но
var replaceWith = $('#test_id p').replaceWith();
вернет весь объект DOM
<p>My Content</p>
.
2.) HTML ('значение') против replaceWith ('значение')
$('#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>
Старый вопрос, но это может кому-то помочь.
Существуют некоторые различия в том, как эти функции работают в Internet Explorer и Chrome / Firefox, ЕСЛИ ваш HTML-код недействителен.
Очистите ваш HTML, и они будут работать как задокументировано.
(Не закрывая мой </center>
дорогой мне мой вечер!)
Также может быть полезно знать, что .empty().append()
также можно использовать вместо .html()
. В тесте, показанном ниже, это быстрее, но только если вам нужно многократно вызывать эту функцию.
Смотрите: https://jsperf.com/jquery-html-vs-empty-append-test