cómo obtener el contenido real de un objeto después de haber sido Vuelvaa ( 'algo') en jQuery

StackOverflow https://stackoverflow.com/questions/3573521

  •  01-10-2019
  •  | 
  •  

Pregunta

Tengo este código

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

Quiero conseguir el nuevo contenido de 'obj' que ha sido 'sustituir con'

pero,

me sale el contenido antiguo en lugar ...

¿cómo consigo el contenido real de 'obj' ???

mi intención es tener acceso a la nueva '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'
});

Quiero imprimir el nombre de la clase del 'lapso', que es 'medio'

¿Fue útil?

Solución

Su método de actualización es el correcto, sólo necesita un pellizco de esta manera:

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

Puede probarlo aquí . El cambio importante es la repl.find() que mirar en el nuevo elemento en lugar de la antigua.

Otros consejos

¿Por qué quieres hacer eso? usted sabe lo que se ha sustituido con ....

$(document).ready(function(){
    $('.selector').click(function(){
        var obj = $(this);
        var replacement = $('<div class="size">whats up man ??!</div>');
        obj.replaceWith(replacement);
        alert(replacement.html());
    });
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top