jQuery append () 대 appendChild ()


100

다음은 몇 가지 샘플 코드입니다.

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>

append()과 의 차이점은 무엇입니까 appendChild()?
실시간 시나리오가 있습니까?



하나는 jQuery 메서드이고 다른 하나는 네이티브 JS 메서드입니다. 둘 다 거의 동일한 작업을 수행하지만 append ()는 여러 요소를 허용합니다.
— adeneo

하단은 라이브러리 (예 : 일반적으로 참조되는 jQuery)를 사용하고 상단은 "네이티브"DOM 메서드를 사용하여 요소를 추가합니다.
— Qantas 94 Heavy

답변:


106

주요 차이점은 appendChildDOM 메서드이고 appendjQuery 메서드라는 것입니다. 두 번째는 jQuery 소스 코드에서 볼 수 있듯이 첫 번째를 사용합니다.

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

프로젝트에서 jQuery 라이브러리를 사용하는 append경우 페이지에 요소를 추가 할 때 항상 안전하게 사용할 수 있습니다 .


append가 "안전"하고 appendChild가 아닌 이유를 아십니까? domManip은 무엇을합니까?
— Rob Fox

2
@RobFox : 안전에 의해 jquery를 사용하는 경우 항상 append를 사용하는 것이 안전하다고 말하려고합니다 (DOM appendchild가 선호되는 상황은 없습니다). domManip과 관련하여 주요 목표는 DOM DocumentFragments를 사용하는 것 같습니다. 여기 에 방법에 대한 설명이 있고 여기에 단편 사용의 동기에 대한 John Resig의 공식 단어가 있습니다
— Claudio Redi

4
자바 스크립트도 ParentNode.append()지금 있습니다. 자세한 내용은 @SagarV의 답변을 확인하십시오.
— Jo E.

@JoE와 똑같은 말을하려고했습니다. : ParentNode.append () 참조 .
— Lonnie Best

47

더이상

이제 append는 JavaScript의 메소드입니다.

추가 방법에 대한 MDN 문서

MDN 인용

이 ParentNode.append메서드 DOMString는의 마지막 자식 뒤에 Node 개체 또는 개체 집합을 삽입 합니다 ParentNode. DOMString객체는 동등한 Text 노드로 삽입됩니다.

IE 및 Edge에서는 지원되지 않지만 Chrome (54+), Firefox (49+) 및 Opera (39+)에서는 지원됩니다.

JavaScript의 추가는 jQuery의 추가와 유사합니다.

여러 인수를 전달할 수 있습니다.

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은 현재 자바 스크립트에 무엇이 있는지 알려주지 않고 ES 사양은 알려줍니다
— Raimonds

18

append 요소에 일부 콘텐츠 또는 HTML을 추가하는 jQuery 메서드입니다.

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

appendChild 자식 요소를 추가하기위한 순수한 DOM 메서드입니다.

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

9

나는 이것이 오래되고 대답 된 질문이라는 것을 알고 있으며 나는 투표를 찾고 있지 않습니다. 나는 새로운 이민자들에게 도움이 될 것이라고 생각하는 작은 것을 추가하고 싶습니다.

예 appendChild는 DOM방법이고 appendJQuery 방법이지만 실제로 중요한 차이점은 appendChild노드를 매개 변수로 사용한다는 것입니다. 즉, DOM에 빈 단락을 추가하려면 해당 p요소를 먼저 만들어야합니다.

var p = document.createElement('p')

그런 다음 DOM에 추가 할 수 있지만 JQuery는 append해당 노드를 생성하여 텍스트 요소 든 html 요소 든 조합이든 즉시 DOM에 추가합니다!

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



0

appendChild순수한입니다 자바 스크립트 와 같은 방법 appendA는 의 jQuery 방법은.


0

자바 스크립트에 appendChild의 방법은 다른 요소에 항목을 추가하는 사용 될 수 있습니다. jQuery를 추가]의 요소는 동일한 작업을하지만 확실히 선 적은 수의 작업을 수행합니다

목록에 항목을 추가하는 예제를 살펴 보겠습니다.

a) 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) jQuery 사용

$("#myList").append("<li>jQuery</li>")
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.