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
-1i mam nadzieję, że będzie to pomocne dla wszystkich. :)
var $form = $target.closest('tr').replaceWith(html) Okazuje się, że $formzawiera 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ę.