come ottenere il contenuto effettivo di un oggetto dopo essere stato ReplaceWith ( 'qualcosa') in jQuery
-
01-10-2019 - |
Domanda
Ho questo codice
$(document).ready(function(){
$('.selector').click(function(){
obj = $(this);
obj.replaceWith('<div class="size">whats up man ??!</div>');
alert(obj.html());
});
});
Voglio ottenere il nuovo contenuto di 'obj' che è stato 'ReplaceWith'
ma,
ottengo il vecchio contenuto invece ...
come faccio a ottenere l'effettivo contenuto di 'obj' ???
la mia intenzione è quella di accedere al nuovo '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'
});
Voglio stampare il nome della classe del 'arco', che è 'medio'
Soluzione
Il metodo aggiornato è quello corretto, ha solo bisogno di un tweak come questo:
$('.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'));
});
È possibile provarlo qui . Il cambiamento importante è la repl.find()
di guardare nel nuovo elemento al posto di quello vecchio.
Altri suggerimenti
perché vuoi farlo? si sa che cosa è stato sostituito 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());
});
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow