4

の使い方です

e = elem.clone(true);
elem.remove();

と同じ

e = elem.detach();

後で追加する場合

e.appendTo($("#someDiv"));

jQuery 1.4では?
clone(true) メソッドは、detach() を使用してすべてを保持しますか?

4

2 に答える 2

2

同じですが違います: 変数に代入せずにノードを複製すると、コピーされたノードの参照が失われるため、イベント ハンドラーやその他のデータを操作する機会が失われます (正確ではありませんが、PITA です)。

EDIT
はい、クローンされた要素への参照を保持すると、後でDOMに追加できる正確なコピーがあります(ただし、真のパラメータに注意してください)。

于 2010-02-16T18:34:22.997 に答える
0

私が読んだ方法では、これらは同等のアプローチになります。

detach() のドキュメントから:

.detach() メソッドは、.detach() が削除された要素に関連付けられたすべての jQuery データを保持することを除いて、.remove() と同じです。このメソッドは、削除された要素を後で DOM に再挿入する場合に便利です。

clone() のドキュメントから:

.clone( [ withDataAndEvents ] )

withDataAndEvents イベント ハンドラーを要素と共にコピーする必要があるかどうかを示すブール値。jQuery 1.4 の時点で、要素データもコピーされます。

于 2010-02-16T18:32:11.403 に答える