jqueryで置き換えられた後にオブジェクトの実際のコンテンツを取得する方法

StackOverflow https://stackoverflow.com/questions/3573521

  •  01-10-2019
  •  | 
  •  

質問

このコードがあります

$(document).ready(function(){
    $('.selector').click(function(){
        obj = $(this);
        obj.replaceWith('<div class="size">whats up man ??!</div>');
        alert(obj.html());
    });
});

「obj」の新しいコンテンツを「置き換えて」取得したい

しかし、

代わりに古いコンテンツを取得します...

「obj」の実際のコンテンツを取得するにはどうすればよいですか?

私の意図は、新しい「OBJ」にアクセスすることです

$('.selector').click(function(){
            var obj = $(this),
            repl = $('<div class="size">whats up man ??! <span class="medium"></span></div>');
            obj.replaceWith(repl);
            alert(obj.find('span').attr('class')); //this will print 'undefined'
});

「中」の「スパン」のクラス名を印刷したい

役に立ちましたか?

解決

更新された方法は正しい方法で、次のような調整が必要です。

$('.selector').click(function(){
  var obj = $(this),
      repl = $('<div class="size">whats up man ??! <span class="medium"></span></div>');
  obj.replaceWith(repl);
  alert(repl.find('span').attr('class')); 
});

ここでテストできます. 。重要な変化はです repl.find() 古い要素の代わりに新しい要素を見る。

他のヒント

なぜあなたはそれをしたいのですか?あなたはそれを何に置き換えたか知っています....

$(document).ready(function(){
    $('.selector').click(function(){
        var obj = $(this);
        var replacement = $('<div class="size">whats up man ??!</div>');
        obj.replaceWith(replacement);
        alert(replacement.html());
    });
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top