0

とを組み合わせるJqueryの方法はappend()ありreplaceWith()ますか?

JQMプロジェクトにログインフォームがあり、すべてのサイトにあります。複数のページがDOMに読み込まれるため、ユーザーがページ間を移動するときに、DOMに重複するform#idがないように、長いフォームを「沿って」移動する必要があります。

私の質問:私はこのようにすることができます:

 $('.form_in_new_page').replaceWith('.form_in_old_page')

しかし、「追加して置き換える」方法はあるので、1行のコードでこれを行うことができますか?

手伝ってくれてありがとう!

編集:いくつかの詳細情報 これが私がpagebeforehideで実行している私のスクリプトです:

$('div:jqmData(role="page").basePage').on('pagebeforehide', function(e, data) {

     // look for unique elements on the page being left
     $(this).find(':jqmData(unique="true")').each(function(){

         var uniqueID = $(this).jqmData("unique-id"),
             nextPage = data.nextPage,
             nextUnique = nextPage.find( ":jqmData(unique-id='"+uniqueID+"')" ),
             nextUniqueID = nextUnique.jqmData('unique-id') === uniqueID;

         // if a unique element with id=123 is on both from and next page
         if ( nextUniqueID == true ) {
             // append element from page being left to and replace it on next page
             nextUnique.replaceWith( $(this) );
             }
     });       
  });   

アプリのDOM内にページを保持する必要があります。すべてのページにはログイン/ログアウトポップアップがあり、フォームとID付きの入力が含まれています。したがって、DOMに10ページある場合、10個のフォームと10個の各IDを持つ10個のポップアップが表示されます。私はポップアップをすべてに自動的に挿入しているので、ユーザーがサブページを直接呼び出した場合にポップアップが表示されます。ただし、ユーザーが次のページに移動したらすぐに、最初のページのフォームが2番目のページのフォームに追加されて置き換えられることを確認する必要があります。

それが今はっきりしていることを願っています。

上記は、新しいページのフォームを置き換えるだけですが、古いページのままにしておきます。

4

1 に答える 1

1

jquery では、関数はこれ ($) を返すため、呼び出しをチェーンできます。

$("#selector").replaceWith("<div>Hello</div>").append('<div>test2</div>');

もちろん、これは呼び出しを正しい順序で連鎖させる必要があることを意味します。

于 2012-02-28T05:57:24.973 に答える