comment obtenir le contenu réel d'un objet après avoir été replaceWith ( « quelque chose ») dans jquery

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

  •  01-10-2019
  •  | 
  •  

Question

Je le code

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

Je veux obtenir le nouveau contenu de « obj » qui a été « replaceWith »

je reçois l'ancien contenu à la place ...

Comment puis-je obtenir le contenu réel de 'obj' ???

mon intention est d'accéder à la nouvelle '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'
});

Je veux imprimer le nom de classe de la « durée » qui est « moyen »

Était-ce utile?

La solution

Votre méthode mise à jour est correcte, juste besoin d'un coup sec comme ceci:

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

Vous pouvez le tester ici . Le changement important est le repl.find() de regarder dans le nouvel élément à la place de l'ancien.

Autres conseils

pourquoi voulez-vous faire? vous savez ce que vous avez remplacé avec ....

$(document).ready(function(){
    $('.selector').click(function(){
        var obj = $(this);
        var replacement = $('<div class="size">whats up man ??!</div>');
        obj.replaceWith(replacement);
        alert(replacement.html());
    });
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top