wie tatsächlichen Inhalt eines Objekt zu erhalten, nachdem replaceWith zu sein ( ‚etwas‘) in jquery

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

  •  01-10-2019
  •  | 
  •  

Frage

Ich habe diesen Code

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

Ich mag den neuen Inhalt von ‚obj‘ erhalten, wurde ‚replaceWith‘

, sondern

ich den alten Inhalt statt ...

Wie bekomme ich den eigentlichen Inhalt von 'obj' ???

meine Absicht ist es, die neue 'obj'

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

Ich will den Klassennamen der ‚Spanne‘ drucken, das ist ‚mittel‘

War es hilfreich?

Lösung

Ihre aktualisierte Methode die richtige ist, muss nur ein zwicken wie folgt aus:

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

Sie können es testen hier aus. Die wichtige Änderung ist die repl.find() in dem neuen Elemente zu suchen, anstatt die alten.

Andere Tipps

Warum wollen Sie das tun? Sie wissen, was Sie ersetzt es mit ....

$(document).ready(function(){
    $('.selector').click(function(){
        var obj = $(this);
        var replacement = $('<div class="size">whats up man ??!</div>');
        obj.replaceWith(replacement);
        alert(replacement.html());
    });
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top