Risposte:
Prendi questo codice HTML:
<div id="mydiv">Hello World</div>
fare:
$('#mydiv').html('Aloha World');
Si tradurrà in:
<div id="mydiv">Aloha World</div>
fare:
$('#mydiv').replaceWith('Aloha World');
Si tradurrà in:
Aloha World
Quindi html () sostituisce il contenuto dell'elemento, mentre replaceWith () sostituisce l'elemento effettivo.
replaceWith () sostituirà l'elemento corrente, mentre html () sostituisce semplicemente il contenuto.
Si noti che replaceWith () non eliminerà effettivamente l'elemento ma lo rimuoverà semplicemente dal DOM e lo restituirà all'utente nella raccolta.
Un esempio per Peter: http://jsbin.com/ofirip/2
-1
e spero che questo sarà utile per tutti. :)
var $form = $target.closest('tr').replaceWith(html)
risulta che $form
contiene l'elemento prima della sostituzione. sospiro
Esistono due modi per utilizzare le funzioni jquery html () e replaceWith ().
<div id="test_id">
<p>My Content</p>
</div>
1.) html () vs replaceWith ()
var html = $('#test_id p').html();
restituirà il "Mio contenuto"
Ma
var replaceWith = $('#test_id p').replaceWith();
restituirà l'intero oggetto DOM di
<p>My Content</p>
.
2.) html ('valore') vs replaceWith ('valore')
$('#test_id p').html('<h1>H1 content</h1>');
ti darà il seguente risultato.
<div id="test_id">
<p><h1>H1 content</h1></p>
</div>
Ma
$('#test_id p').replaceWith('<h1>H1 content</h1>');
ti darà il seguente risultato messo.
<div id="test_id">
<h1>H1 content</h1>
</div>
Vecchia domanda ma questo può aiutare qualcuno.
Ci sono alcune differenze nel modo in cui queste funzioni operano in Internet Explorer e Chrome / Firefox SE il tuo HTML non è valido.
Pulisci il tuo HTML e funzioneranno come documentato.
(Non chiudermi mi è </center>
costato la serata!)
Può anche essere utile sapere che .empty().append()
può essere utilizzato anche al posto di .html()
. Nel benchmark mostrato sotto questo è più veloce ma solo se è necessario chiamare questa funzione più volte.