2010-08-26 10 views
11

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

$(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,

consigo 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'

Respuesta

10

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

You can test it out here. El cambio importante es el repl.find() para buscar en el elemento nuevo en lugar del anterior.

+1

thx nick, lo has clavado. – mdennisa

3

¿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()); 
    }); 
}); 
+0

THX Andrew, mi intención es tener acceso a manipular todo dentro de la real (función 'obj', $ ('size'). Click() { \t var obj = $ (este), \t repl = $ ('

whats up man ??!
'); obj.replaceWith (sust); \t alerta (obj.find (' período ') attr (' clase).); // esto imprime 'indefinido' // Quiero obtener el nombre de clase del 'obj' real }); – mdennisa

+0

pero sabes que acabas de asignar 'size' a él, entonces ¿por qué no solo estás alertando' size'? simplemente hazlo: 'replacement.find ('span'). attr ('clase')' si realmente debes –

+0

yes andrew, tu código ha resuelto mi pregunta en primer lugar. pero creo que no lo entendí. aquí está el resultado final http://jsfiddle.net/HCXaK/1/ – mdennisa

Cuestiones relacionadas