Подтвердить что ты не робот

Как получить фактическое содержимое объекта после заменыWith ( "что-то" ) в jquery

У меня есть этот код

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

Я хочу получить новое содержимое "obj", которое было "replaceWith"

но

Вместо этого я получаю старый контент...

как получить фактическое содержимое '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'
});

Я хочу напечатать имя класса "span", которое является "medium"

4b9b3361

Ответ 1

Ваш обновленный метод правильный, просто нужна настройка следующим образом:

$('.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() для поиска нового элемента вместо старого.

Ответ 2

почему вы хотите это сделать? вы знаете, что вы заменили его....

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