Odpowiedzi:
Weź ten kod HTML:
<div id="mydiv">Hello World</div>
Robić:
$('#mydiv').html('Aloha World');
Spowoduje:
<div id="mydiv">Aloha World</div>
Robić:
$('#mydiv').replaceWith('Aloha World');
Spowoduje:
Aloha World
Więc html () zastępuje zawartość elementu, a replaceWith () zastępuje rzeczywisty element.
replaceWith () zastąpi bieżący element, podczas gdy html () po prostu zastępuje zawartość.
Zauważ, że funkcja replaceWith () w rzeczywistości nie usunie elementu, ale po prostu usunie go z DOM i zwróci do Ciebie w kolekcji.
Przykład dla Petera: http://jsbin.com/ofirip/2
-1
i mam nadzieję, że będzie to pomocne dla wszystkich. :)
var $form = $target.closest('tr').replaceWith(html)
Okazuje się, że $form
zawiera element przed zamianą. westchnienie
Istnieją dwa sposoby używania funkcji html () i replaceWith () Jquery.
<div id="test_id">
<p>My Content</p>
</div>
1.) html () vs replaceWith ()
var html = $('#test_id p').html();
zwróci „Moje treści”
Ale
var replaceWith = $('#test_id p').replaceWith();
zwróci cały obiekt DOM z
<p>My Content</p>
.
2.) html ('wartość') vs replaceWith ('wartość')
$('#test_id p').html('<h1>H1 content</h1>');
da ci następujący wynik.
<div id="test_id">
<p><h1>H1 content</h1></p>
</div>
Ale
$('#test_id p').replaceWith('<h1>H1 content</h1>');
da ci następujące dane.
<div id="test_id">
<h1>H1 content</h1>
</div>
Stare pytanie, ale to może komuś pomóc.
Istnieją pewne różnice w działaniu tych funkcji w przeglądarkach Internet Explorer i Chrome / Firefox, JEŚLI Twój kod HTML jest nieprawidłowy.
Wyczyść swój kod HTML, a będą działać zgodnie z dokumentacją.
(Nie zamykam </center>
kosztu mojego wieczoru!)
Warto również wiedzieć, że .empty().append()
można go również użyć zamiast .html()
. W benchmarku pokazanym poniżej jest to szybsze, ale tylko wtedy, gdy musisz wielokrotnie wywoływać tę funkcję.