jQuery append () vs appendChild ()

94

Hier ist ein Beispielcode:

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>

Was ist der Unterschied zwischen append()und appendChild()?
Irgendwelche Echtzeitszenarien?

user2067567
quelle
Eine ist eine jQuery-Methode, die andere ist eine native JS-Methode. Beide machen so ziemlich dasselbe, aber append () akzeptiert mehrere Elemente.
Adeneo
Im unteren Bereich wird eine Bibliothek verwendet (z. B. die häufig verwendete jQuery), im oberen Bereich werden "native" DOM-Methoden zum Anhängen des Elements verwendet.
Qantas 94 Heavy

Antworten:

104

Der Hauptunterschied besteht darin, dass appendChildes sich um eine DOM-Methode und appendeine jQuery-Methode handelt. Der zweite verwendet den ersten, wie Sie im jQuery-Quellcode sehen können

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

Wenn Sie die jQuery-Bibliothek in Ihrem Projekt verwenden, können Sie diese sicher immer verwenden, appendwenn Sie der Seite Elemente hinzufügen.

Claudio Redi
quelle
Wissen Sie, warum append "sicher" ist und appendChild nicht? Was macht domManip?
Rob Fox
2
@RobFox: Mit safe wollte ich sagen, wenn Sie jquery verwenden, können Sie sicher immer append verwenden (es gibt keine Situation, in der DOM appendchild bevorzugt wird). In Bezug auf domManip scheint das Hauptziel die Verwendung von DOM DocumentFragments zu sein. Hier haben Sie eine Beschreibung der Methode und hier haben Sie das offizielle Wort von John Resig über Motivationen hinter der Verwendung von Fragmenten
Claudio Redi
3
Javascript hat auch ein ParentNode.append()Jetzt. Bitte überprüfen Sie die Antwort von @ SagarV für weitere Informationen.
Jo E.
Ich wollte dasselbe sagen wie @JoE. : siehe ParentNode.append () .
Lonnie Best
46

Nicht mehr, nicht länger

Jetzt ist Anhängen eine Methode in JavaScript

MDN-Dokumentation zur Append-Methode

MDN zitieren

Die ParentNode.appendMethode fügt eine Reihe von Knotenobjekten oder DOMStringObjekten nach dem letzten untergeordneten Element des Knotens ein ParentNode. DOMStringObjekte werden als äquivalente Textknoten eingefügt.

Dies wird nicht von IE und Edge unterstützt, sondern von Chrome (54+), Firefox (49+) und Opera (39+).

Das Anhängen von JavaScript ähnelt dem Anhängen von jQuery.

Sie können mehrere Argumente übergeben.

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

Sagar V.
quelle
3
MDN sagt nicht, was jetzt in Javascript ist, ES-Spezifikation tut
Raimonds
17

append ist eine jQuery-Methode zum Anhängen von Inhalten oder HTML an ein Element.

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

appendChild ist eine reine DOM-Methode zum Hinzufügen eines untergeordneten Elements.

document.getElementById('example').appendChild(newElement);
Fenton
quelle
9

Ich weiß, dass dies eine alte und beantwortete Frage ist und ich suche nicht nach Stimmen. Ich möchte nur eine zusätzliche Kleinigkeit hinzufügen, von der ich denke, dass sie Neulingen helfen könnte.

yes appendChildist eine DOMMethode und appendeine JQuery-Methode, aber praktisch besteht der Hauptunterschied darin, dass appendChildein Knoten als Parameter verwendet wird. Wenn Sie dem DOM einen leeren Absatz hinzufügen möchten, müssen Sie dieses pElement zuerst erstellen

var p = document.createElement('p')

Dann können Sie es dem DOM hinzufügen, während JQuery appenddiesen Knoten für Sie erstellt und sofort zum DOM hinzufügt, unabhängig davon, ob es sich um ein Textelement, ein HTML-Element oder eine Kombination handelt!

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

kapreski
quelle
5

appendChildist eine DOM- Vanille-js- Funktion.

append ist eine jQuery-Funktion.

Sie haben jeweils ihre eigenen Macken.

Naftali alias Neal
quelle
0

appendChildist eine reine Javascript- Methode, wobei appendes sich um eine jQuery- Methode handelt.

Krishna
quelle
0

Mit der JavaScript- Methode appendchild können Sie ein Element an ein anderes Element anhängen. Das jQuery Append- Element erledigt die gleiche Arbeit, aber sicherlich in weniger Zeilen:

Nehmen wir ein Beispiel zum Anhängen eines Elements an eine Liste:

a) Mit 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) Mit jQuery

$("#myList").append("<li>jQuery</li>")
Diana J.
quelle