Как получить фактическое содержимое объекта после замены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"
Ответы
Ответ 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());
});
});