2013-04-10 29 views
54

Ecco alcuni esempi di codice:Append Vs AppendChild JQuery

function addTextNode(){ 
    var newtext = document.createTextNode(" Some text added dynamically. "); 
    var para = document.getElementById("p1"); 
    para.appendChild(newtext); 
    $("#p1").append("HI"); 
} 
<div style="border: 1px solid red"> 
    <p id="p1">First line of paragraph.<br /></p> 
</div> 

Qual è la differenza tra append e appendChild.

Eventuali scenari in tempo reale?

PS: Può essere una domanda stupida voglio solo sapere la differenza esatta

+0

Vedi qui http://jsperf.com/native-appendchild-vs-jquery-append/4 – PSR

+0

Uno è un metodo di jQuery, l'altro è un metodo di JS nativo, entrambi fare praticamente la stessa cosa, ma append() accetta più elementi. – adeneo

+0

La parte inferiore utilizza una libreria (ad esempio il jQuery di riferimento), la parte superiore utilizza metodi DOM "nativi" per aggiungere l'elemento. –

risposta

64

La differenza principale è che appendChild è un metodo DOM e append è un metodo jQuery. La seconda utilizza il primo, come si può vedere su jQuery codice sorgente

append: function() { 
    return this.domManip(arguments, true, function(elem) { 
     if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 
      this.appendChild(elem); 
     } 
    }); 
}, 

Se stai usando libreria jQuery sul vostro progetto, sarete al sicuro utilizzando sempre append quando si aggiungono elementi alla pagina.

+0

Sai perché append è "sicuro" e appendChild no? Cosa fa domManip? –

+1

@RobFox: per sicurezza intendevo dire che se si sta usando jquery, si è sicuri di usare sempre append (non vi è alcuna situazione in cui viene preferito l'appendchild del DOM). In relazione a domManip, sembra che l'obiettivo principale sia l'utilizzo di DOM DocumentFragments. [Qui] (http://www.blog.highub.com/javascript/decoding-jquery-dommanip-dom-manipulation/) hai una descrizione del metodo e [qui] (http://ejohn.org/blog/dom-documentfragments /) hai la parola ufficiale di John Resig sulle motivazioni dietro l'uso dei frammenti –

+0

javascript ha anche un 'ParentNode.append()' ora. per favore controlla la risposta di @ SagarV per maggiori informazioni. –

4

appendChild è una funzione DOM vanilla-js.

append è una funzione jQuery.

Ognuno di essi ha i propri capricci.

11

append è un metodo jQuery per aggiungere contenuto o HTML a un elemento.

$('#example').append('Some text or HTML'); 

appendChild è un metodo DOM puro per l'aggiunta di un elemento figlio.

document.getElementById('example').appendChild(newElement); 
-1

appendChild è un metodo puro JavaScript dove come append è un metodojQuery.

4

So che questa è una domanda vecchia e risposta e non sto cercando voti Voglio solo aggiungere una piccola cosa in più che penso possa aiutare i nuovi arrivati.

appendChild è un metodo DOM e append è il metodo JQuery, ma praticamente la differenza fondamentale è che appendChild prende un nodo come parametro con questo voglio dire, se si desidera aggiungere un paragrafo vuoto al DOM è necessario creare che p primo elemento di

var p = document.createElement('p')

allora si può aggiungere al DOM, mentre JQuery append crea quel nodo per voi e lo aggiunge al DOM subito che si tratti di un elemento di testo o elemento o una combinazione di HTML!

$('p').append('<span> I have been appended </span>');

7

Non più

ora accoda è un metodo in JavaScript

MDN documentation on append method

Citando MDN

Il metodo ParentNode.append inserisce una serie di oggetti nodo o DOMString oggetti dopo l'ultimo figlio di ParentNode. Gli oggetti DOMString vengono inseriti come nodi di testo equivalenti.

Questo non è supportato da IE e Edge ma è supportato da Chrome (54+), Firefox (49+) e Opera (39+).

L'append di JavaScript è simile all'app di jQuery.

È possibile passare più argomenti.

var elm = document.getElementById('div1'); 
 
elm.append(document.createElement('p'),document.createElement('span'),document.createElement('div')); 
 
console.log(elm.innerHTML);
<div id="div1"></div>

+0

MDN non dice cosa è ora in javascript, la specifica ES fa – Raimonds