11

私はこのコードを持っています

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

'replaceWith'である'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'
});

'medium'である'span'のクラス名を出力したい

4

2 に答える 2

10

更新されたメソッドは正しいものであり、次のように微調整する必要があります。

$('.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()、古い要素ではなく新しい要素を調べることです。

于 2010-08-26T09:41:35.403 に答える
3

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

$(document).ready(function(){
    $('.selector').click(function(){
        var obj = $(this);
        var replacement = $('<div class="size">whats up man ??!</div>');
        obj.replaceWith(replacement);
        alert(replacement.html());
    });
});
于 2010-08-26T09:03:40.677 に答える