Respostas:
Pegue este código HTML:
<div id="mydiv">Hello World</div>
Fazendo:
$('#mydiv').html('Aloha World');
Vai resultar em:
<div id="mydiv">Aloha World</div>
Fazendo:
$('#mydiv').replaceWith('Aloha World');
Vai resultar em:
Aloha World
Então html () substitui o conteúdo do elemento, enquanto replaceWith () substitui o elemento real.
replaceWith () substituirá o elemento atual, enquanto html () simplesmente substitui o conteúdo.
Observe que o replaceWith () na verdade não exclui o elemento, mas simplesmente o remove do DOM e o devolve na coleção.
Um exemplo para Peter: http://jsbin.com/ofirip/2
-1
e espero que isso seja útil para todos. :)
var $form = $target.closest('tr').replaceWith(html)
Acontece que ele $form
contém o elemento antes da substituição. ssh
Existem duas maneiras de usar as funções html () e replaceWith () Jquery.
<div id="test_id">
<p>My Content</p>
</div>
1.) html () vs replaceWith ()
var html = $('#test_id p').html();
retornará o "Meu conteúdo"
Mas o
var replaceWith = $('#test_id p').replaceWith();
retornará todo o objeto DOM de
<p>My Content</p>
.
2.) html ('value') vs replaceWith ('value')
$('#test_id p').html('<h1>H1 content</h1>');
vai lhe dar o seguinte posto.
<div id="test_id">
<p><h1>H1 content</h1></p>
</div>
Mas o
$('#test_id p').replaceWith('<h1>H1 content</h1>');
dará a você o seguinte exposto.
<div id="test_id">
<h1>H1 content</h1>
</div>
Pergunta antiga, mas isso pode ajudar alguém.
Existem algumas diferenças na maneira como essas funções operam no Internet Explorer e Chrome / Firefox SE o seu HTML não é válido.
Limpe seu HTML e eles funcionarão conforme documentado.
(Não fechar meu </center>
custo me custou a noite!)
Também pode ser útil saber que .empty().append()
também pode ser usado em vez de .html()
. No benchmark mostrado abaixo, isso é mais rápido, mas apenas se você precisar chamar essa função várias vezes.
Consulte: https://jsperf.com/jquery-html-vs-empty-append-test