jQuery append()とappendChild()


95

ここにいくつかのサンプルコードがあります:

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()
リアルタイムのシナリオはありますか?



1つはjQueryメソッドで、もう1つはネイティブJSメソッドです。どちらもほとんど同じことを行いますが、append()は複数の要素を受け入れます。
adeneo 2013

下部はライブラリ(一般的に参照されるjQueryなど)を使用しており、上部は「ネイティブ」DOMメソッドを使用して要素を追加しています。
カンタス94ヘビー

回答:


104

主な違いはappendChild、DOMメソッドとappendjQueryメソッドです。2番目のものは、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 14年

2
@RobFox:安全です。jqueryを使用している場合は、常に追加を使用しても安全です(DOM appendchildが優先される状況はありません)。domManipに関連して、主な目的はDOM DocumentFragmentsを使用することです。ここであなたは方法の説明があり、ここで、あなたは断片を使用しての背後にある動機についてジョンResig氏の公式の単語を持っている
クラウディオREDI

3
javascriptにもParentNode.append()now があります。詳細については、@ SagarVの回答を確認してください。
ジョーE.

@JoEと同じことを言うつもりだった。:ParentNode.append()を参照してください。
ロニーベスト

46

もはや

追加はJavaScriptのメソッドです

追加メソッドに関するMDNドキュメント

MDNの引用

このParentNode.appendメソッドは、一連のNodeオブジェクトまたはDOMStringオブジェクトをの最後の子の後に挿入しますParentNodeDOMStringオブジェクトは同等の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はJavaScriptの現在の内容を通知しませんが、ES仕様は通知します
Raimonds

17

append 要素にコンテンツまたはHTMLを追加するjQueryメソッドです。

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

appendChild 子要素を追加するための純粋なDOMメソッドです。

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

9

私はこれが古くて回答済みの質問であることを知っており、投票を探していません。新規参入者に役立つと思われる追加の小さなことを追加したいだけです。

はいappendChildDOMメソッドでappendあり、JQueryメソッドですが、実質的な主な違いはappendChild、ノードをパラメーターとして使用することです。つまり、DOMに空の段落を追加する場合は、p最初にその要素を作成する必要があります。

var p = document.createElement('p')

次に、それをDOMに追加できます。JQuery appendはそのノードを作成し、テキスト要素、html要素、またはその組み合わせに関係なく、すぐにDOMに追加します。

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




0

JavaScriptのの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.