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?



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.


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>


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

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



0

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


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>")
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.