jQuery append () vs appendChild ()


95

Ecco un po 'di codice di esempio:

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()?
Qualche scenario in tempo reale?



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

La parte inferiore utilizza una libreria (ad esempio il jQuery comunemente referenziato), la parte superiore utilizza metodi DOM "nativi" per aggiungere l'elemento.
— Qantas 94 Heavy

Risposte:


104

La differenza principale è che appendChildè un metodo DOM ed appendè un metodo jQuery. Il secondo usa il primo come puoi vedere sul codice sorgente di jQuery

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 la libreria jQuery sul tuo progetto, sarai sempre sicuro di usarlo appendquando aggiungi elementi alla pagina.


Sai perché append è "sicuro" e appendChild no? Cosa fa domManip?
— Rob Fox

2
@ RobFox: per safe intendevo dire che se stai usando jquery, puoi usare sempre append (non c'è situazione in cui DOM appendchild sia preferito). In relazione a domManip, sembra che l'obiettivo principale sia l'utilizzo di DOM DocumentFragments. Qui hai una descrizione del metodo e qui hai la parola ufficiale di John Resig sulle motivazioni alla base dell'uso dei frammenti
— Claudio Redi

3
javascript ha anche un file ParentNode.append()now. si prega di controllare la risposta di @ SagarV per maggiori informazioni.
— Jo E.

Stavo per dire la stessa cosa di @JoE. : vedere ParentNode.append () .
— Lonnie Best

46

Non più

ora append è un metodo in JavaScript

Documentazione MDN sul metodo di aggiunta

Citando MDN

Il ParentNode.appendmetodo inserisce un insieme di oggetti o DOMStringoggetti Node dopo l'ultimo figlio di ParentNode. DOMStringgli oggetti 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'append di jQuery.

Puoi 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>


3
MDN non dice cosa c'è ora in javascript, la specifica ES lo fa
— Raimonds

17

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);

9

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

si appendChildè un DOMmetodo ed è un metodo appendJQuery ma praticamente la differenza fondamentale è che appendChildprende un nodo come parametro con ciò intendo dire che se vuoi aggiungere un paragrafo vuoto al DOM devi pprima creare quell'elemento

var p = document.createElement('p')

quindi puoi aggiungerlo al DOM mentre JQuery appendcrea quel nodo per te e lo aggiunge subito al DOM che si tratti di un elemento di testo o di un elemento html o di una combinazione!

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



0

appendChildè un metodo javascript puro dove as appendè un metodo jQuery .


0

Il metodo JavaScript appendchild può essere utilizzato per aggiungere un elemento a un altro elemento. L' elemento jQuery Append fa lo stesso lavoro ma sicuramente in un numero inferiore di righe:

Facciamo un esempio per aggiungere un elemento in un elenco:

a) Con JavaScript

var n= document.createElement("LI");                 // Create a <li> node
var tn = document.createTextNode("JavaScript");      // Create a text node
n.appendChild(tn);                                   // Append the text to <li>
document.getElementById("myList").appendChild(n);  

b) Con jQuery

$("#myList").append("<li>jQuery</li>")
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.