Как получить фактическое содержание объекта после затрагивания («что-то») в 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'
});

Я хочу распечатать название класса «SPAN», который является «средним»

Это было полезно?

Решение

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

$('.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