0

.each() ループで要素を変更し、複製された div を本文に追加するために、ページの要素を複製しています。

これを可能な限り最速にしたいので、クローンをループの外に置きたいと思います。

これまでの私のコードは次のとおりです。

var array = [];
var result = $('#result').clone(true, true);

$.each(someOtherArray, function(i,object){

    result.find()....
    // do a bunch of stuff here, changing the clones info to that contained in the someOtherArray

    array.push(result)

 })

 $('body').append(array)

唯一のことは、「配列」の各エントリが同一であることです (.each() ループの最後のオブジェクト)。どうすればこれを修正できますか?

4

2 に答える 2

0

外にいると、同じものを何度もアレイにresult押し込んでしまいます。result各反復中に変更を加えるかどうかは問題ではありません。同じ参照を配列に何度もプッシュしています。毎回新しいオブジェクトを取得できるように、ループ内でクローンを作成する必要があります。複製のオーバーヘッドが不要で、単にオブジェクトを再作成したい場合は、要素を表す html を文字列に保存し、それを使用して毎回新しい要素を作成できます。

于 2013-11-07T16:46:45.400 に答える