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