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