2013-04-10 23 views
54

Oto niektóre przykładowy kod:Dołącz 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> 

Jaka jest różnica między append i appendChild.

Wszelkie scenariusze w czasie rzeczywistym?

PS: Może to głupie pytanie po prostu chcesz poznać dokładną różnicę

+0

zobaczyć tutaj http://jsperf.com/native-appendchild-vs-jquery-append/4 – PSR

+0

Jednym z nich jest metoda jQuery, drugi jest rodowitym metoda JS, oboje robimy prawie to samo, ale append() akceptuje wiele elementów. – adeneo

+0

W dolnej części znajduje się biblioteka (np. Powszechnie używany jQuery), a na górze używane są "natywne" metody DOM do dołączenia elementu. –

Odpowiedz

64

Główna różnica polega na tym, że appendChild jest metodą DOM, a append jest metodą jQuery. Drugi wykorzystuje pierwszy jak widać na jQuery kodu źródłowego

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

Jeśli używasz biblioteki jQuery nad projektem, będziesz bezpieczny zawsze przy użyciu append podczas dodawania elementów do strony.

+0

Czy wiesz, dlaczego append jest "bezpieczny" i appendChild nie jest? Co robi domManip? –

+1

@RobFox: Bezpiecznie chciałem powiedzieć, że jeśli używasz jquery, możesz bezpiecznie korzystać zawsze (nie ma sytuacji, w której preferowany jest appendchild DOM). W odniesieniu do domManip wydaje się, że głównym celem jest używanie DOM DocumentFragments. [Tutaj] (http://www.blog.highub.com/javascript/decoding-jquery-dommanip-dom-manipulation/) masz opis metody i [tutaj] (http://ejohn.org/blog/dom-documentfragments /) masz oficjalne słowo Johna Resiga na temat motywacji za pomocą fragmentów –

+0

javascript ma teraz także 'ParentNode.append()'. proszę sprawdzić odpowiedź @ SagarV, aby uzyskać więcej informacji. –

4

appendChild jest DOM vanilla-js funkcja.

append jest funkcją jQuery.

Każda z nich ma swoje własne dziwactwa.

11

append to metoda jQuery do dołączania niektórych treści lub HTML do elementu.

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

appendChild to czysta metoda DOM dodawania elementu potomnego.

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

appendChild jest czystym JavaScript metodą, w której jako append jest jQuery metodą.

4

Wiem, że jest to stare i odpowiedział na pytanie i nie szukam głosów. Chcę tylko dodać małą rzecz, która moim zdaniem może pomóc nowo przybyłym.

tak appendChild to metoda DOM i append jest metoda JQuery ale praktycznie Podstawową różnicą jest to, że appendChild zajmuje węzeł jako parametr przez to mam na myśli, jeśli chcesz dodać paragraf pusty do DOM trzeba utworzyć ten p pierwszy element

var p = document.createElement('p')

następnie można go dodać do DOM natomiast JQuery append tworzy ten węzeł dla Ciebie i dodaje go do DOM od razu, czy jest to element tekstowy lub HTML elementem lub kombinacja!

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

7

Już

teraz dołączyć to metoda w JavaScript

MDN documentation on append method

Cytowanie MDN

Sposób ParentNode.append wstawia zestaw obiektów węzła lub DOMString obiekty po ostatnim dziecku ParentNode. DOMString obiekty są wstawiane jako równoważne węzły Tekst.

To nie jest obsługiwane przez IE i Edge, ale jest obsługiwane przez Chrome (54+), Firefox (49+) i Opera (39+).

Dodatek JavaScript jest podobny do dołączenia jQuery.

Możesz przekazywać wiele argumentów.

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 nie mówi, co jest teraz w javascript, specyfikacja ES nie – Raimonds