を使用append
すると、実際に要素が移動するためです。したがって、コードは$foo
のドキュメントに移動し#a
、次に から#a
に移動していました#b
。目的の効果のために、代わりに次のようにクローンを作成できます。この方法では、最初の要素ではなくクローンを追加します。
$(function(){
var $foo = $("<foo>HI</foo>");
$("#a").append($foo.clone());
$("#b").append($foo.clone());
});
html
fromを追加することもできます$foo
。これは、要素自体ではなく、その中の dom のコピーを取るだけです。
$(function(){
var $foo = $("<foo>HI</foo>");
$("#a").append($foo[0].outerHTML);
$("#b").append($foo[0].outerHTML);
});
上記の例は$foo
、文字列から作成された単なる jQuery オブジェクトではなく、DOM の要素から作成された可能性が高い、より複雑なシナリオがあることを前提としています。
実際、この方法でこの目的のために単純に作成された場合...最初からそのjQueryオブジェクトを作成する理由はまったくありません。次のように、文字列自体("<foo>HI</foo>"
)を直接追加するだけです。
var foo = "<foo>HI</foo>";
$("#a").append(foo);
//...