jQueryで要素のコンテンツを複製する方法はありますか?要素全体ではなく、コンテンツ(子供)のみ。jqueryクローンのみ要素の内容
.html()
と似たようなものですが、コンテンツに添付されたイベントのクローニングにも興味があります。
私は.clone
を見ていましたが、要素全体をクローンしているようです。
ありがとうございました。
jQueryで要素のコンテンツを複製する方法はありますか?要素全体ではなく、コンテンツ(子供)のみ。jqueryクローンのみ要素の内容
.html()
と似たようなものですが、コンテンツに添付されたイベントのクローニングにも興味があります。
私は.clone
を見ていましたが、要素全体をクローンしているようです。
ありがとうございました。
Douaアルベリthe jQuery API documentation for .clone()
を参照して、あなたは何をしたいことは.clone(true,true)
であることがわかります。これにより、すべてのデータおよびイベントバインディングを含む要素(または要素の集合)の完全コピーが作成されます。
次に、.clone(true,true)
の使い方について2つの選択肢があります。
子を個別にクローンして、子のクローンを含むjQueryコレクションを提供します。
var $childClones = $("#myElement").children().clone(true,true);
クローン外側の要素は、それ自体が子供のクローンを含む、外側の要素のクローンを含有するjQueryのコレクションを得ました。
var $clone = $("#myElement").clone(true,true);
あなたが採用接近するやや学術的です。いずれの場合も、下位要素はDOM内に操作および/または挿入されるために一括してまたは個別に利用できますが、そうするコードは少し異なります。
あなたは深いコピーのような場合は、単に子供のクローンを作成:
$('#footer-flair').children().clone()
、代わりに特定の要素にイベントをアタッチするその方法あなたの、子要素を聴いているコンテナ要素にイベントをアタッチコンテナー内に数千の要素を追加/削除しても、コンテナー要素が保持されている限り、イベントは発生します。イベントを遠ざけたくない場合は、bodyタグでこれを行うことができます。
使用それほどのようなイベントをバインドする方法「オン」:
$('body').on('click', 'button.className', function(){
alert('button clicked');
});
バブルしないイベントはどうですか? –
イベントは複製されません。 –
@DouaBeri私が答えたいと言っているのは、イベントを複製することはできませんが、多くの異なる要素に多くのイベントが添付されている代わりに、 'body'のような親にバインドしてコード例のように子を聴くことです上記。 – nimrod
すべての子をループしてコピーしますか? – ZombieSpy
'$ cloned.children()'? – undefined
要素に関連付けられたイベントはクローン化されません –