8

構文を除いて、これらの関数間に大きな違いはありません。

$('.target').append('text');
$('text').appendTo('.target');

jQueryのドキュメントで述べたように:

.append()メソッドと.appendTo()メソッドは同じタスクを実行します。主な違いは構文にあります。具体的には、コンテンツとターゲットの配置にあります。.append()を使用すると、メソッドの前にあるセレクター式が、コンテンツが挿入されるコンテナーになります。一方、.appendTo()を使用すると、コンテンツは、セレクター式またはオンザフライで作成されたマークアップとしてメソッドの前に配置され、ターゲットコンテナーに挿入されます。

では、どちらの場合、.append()を使用する方が適切であり、どの.appendTo()を使用するのでしょうか。 どのコードサンプルがこれら2つの関数の一方にしか適合せず、もう一方は十分ではありませんか?

同じ質問が当てはまります:

4

7 に答える 7

3

あなたはそれを自分で言いました---それほど違いはありません。ただし、使用するものの選択は、通常、要素が既に参照されている場合、メソッドチェーンに依存します。

すなわち

var _target, _content;

_target.append(_content).addClass('foo');
// will add the foo class to _target

_content.appendTo(_target).addClass('foo');
// will add the foo class to _content
于 2012-07-18T08:19:58.477 に答える
2

要素を作成するときは、.appendTo同等のものを使用する方がスムーズです

$("<div>", {text: "hello"}).appendTo("body");

$("body").append( $("<div>", {text: "hello" }) /*Awkward having to call jQuery constructor here*/);
于 2012-07-18T08:19:50.027 に答える
1

彼らが言うように、ほとんどの場合、append() と appendTo は同じ結果を生成します。ただし、結果を連鎖させ始めると、違いがわかります。

ターゲット HTML:

<DIV class=.inner1><SPAN></span><SPAN></span></div>
<DIV class=.inner2><SPAN></span><SPAN></span></div>

最初に append() を使用:

$( ".inner1" )
  .append   ( "<p>Test</p>" )
  .addClass ( "addBorder" );

プロデュース:

<DIV class="inner1 addBorder"><SPAN></span><SPAN></span>
<P>Test</p>
</div>

appendTo() を使用した 2 番目の

$( "<p>Test</p>" )
.appendTo ( ".inner2" )
.addClass ( "addBorder" );

プロデュース:

<DIV class="inner2">
    <SPAN></span><SPAN></span>
    <P class="addBorder">Test</p>
</div>
于 2016-02-21T11:43:53.440 に答える
1

考慮すべき主な点は次の 2 つだと思います。

  1. あなたはすでに何を参考にしていますか?追加したい要素を含むjQueryオブジェクトがすでにある場合は、.appendTo()追加したい要素を選択してから.append().

  2. 関数をチェーンしたい/必要がありますか? すべての関数が jQuery オブジェクトを返すため、jQuery がうまく機能することの 1 つは、関数を連結できることです。明らかに、追加する要素で関数を呼び出したい場合は、.appendTo()その後に連鎖するすべての関数が、追加される要素ではなく、追加される要素に適用されるように使用する必要があります。

于 2012-07-18T08:21:58.307 に答える
1

コンテキストで

  • 個人的には、関数が実行する一連の命令またはそれらが使用される場所 (コンテキスト) に応じて 2 つの関数を使用しますあなた自身に。

いずれにせよ、それはかなり文字通りであり、私は考えずに自動的にそれぞれを書いていることに気づきます。

それぞれの文脈において、自分が操作している領域が主体であれば、


$(target).append(content)
//within a function based around manipulating a specific area

関数の主題が新しいコンテンツである場合、より理にかなっているようです

$(content).appendTo(target);
//appending data to something

より理にかなっています。


関数の連鎖

  • また、それぞれの場合で関数を連鎖させると、より意味があることに注意することも重要です。すなわち。すでに要素を扱っている場合

$(target).toggle().append(content);

別の行を追加するよりも意味があり、その逆も同様です。

資力

于 2012-07-18T08:24:54.353 に答える
0

いくつかの jQuery アクションを連鎖させる場合に便利です。そのようです:

$('.target').css({display:"block"}).fadeOut().appendTo('.somewhere');
// appends target to somewhere

また:

$('.target').css({display:"block"}).fadeOut().append('.somewhere');
// appends somewhere to target

これら 2 つは異なるアクションなので、両方あると便利です。

于 2012-07-18T08:20:45.447 に答える
0

それは主に好みの問題です。

より便利な状況の 1 つappendToは、たとえば variable で、jQuery オブジェクトではなく要素への参照がある場合ですdest

$("<div/>").appendTo(dest);

このメソッドを使用するappendには、要素が呼び出せるように jQuery オブジェクトを作成する必要があります。

$(dest).append($("<div/>"));
于 2012-07-18T08:36:09.013 に答える