出発地と目的地と同じ要素がある場合、insertBefore()
またはその要素が削除されているように見えます。insertAfter()
私の理解は正しいですか?
$('#foo').insertBefore($('#foo'))
これは機能ですか?もしそうなら、これらの機能には他にどのような落とし穴がありますか?
出発地と目的地と同じ要素がある場合、insertBefore()
またはその要素が削除されているように見えます。insertAfter()
私の理解は正しいですか?
$('#foo').insertBefore($('#foo'))
これは機能ですか?もしそうなら、これらの機能には他にどのような落とし穴がありますか?
これは、要素insertBefore
をinsertAfter
削除して移動するためです。要素を削除すると、元の要素が前(または後)に挿入されることはなくなります。探しているクローン効果を実現するには、次のことを試してください。
$('#foo').clone().insertBefore($('#foo'))
修正(1.9リリース)が行われる可能性はありますが、実際には既知のバグ(機能ではない)のようです。
バグコメントから:
jQuery.domManipはフラグメントを渡すため、jQuery.cleanは#xをフラグメントに移動します。後でjQuery.afterのコールバックに到達すると、元のparentNodeは失われます。
はい、要素をソース位置からデスティネーション位置にinsertBefore()
移動insertafter()
します。代わりにクローンを挿入する場合は、次を使用できます。
$('#foo').clone().insertBefore($('#foo'))
ただし、クローンは同じIDを持つことに注意してください。これは、望ましくないことです。したがって、クローンを作成した後、挿入する前にIDを変更してください。
つまり、次のようなものです。
$('#foo').clone().attr('id', 'foo2').insertBefore($('#foo'))