Non in DOM dopo $ .load () con jQuery?
Domanda
var id = 'test';
var dom = $('#loader').clone().load("Views/chatBox.html");
dom.find('span.bn').text(id);
in chatBox.html, c'è:
...
<span class="bn">AAA</span>
...
Voglio sostituire " AAA " con "test", ma non riuscito (dom.find non è in grado di recuperarlo), il che significa che non è immediatamente disponibile.
Come farlo nel modo giusto?
Soluzione
Se hai intenzione di lavorare con gli elementi restituiti, dovresti farlo sulla funzione di callback, questo perché il recupero dell'HTML è fatto in modo asincrono e la funzione di callback viene eseguita quando la richiesta è terminata e gli elementi vengono iniettati il DOM:
var id = 'test';
$('#loader').load("Views/chatBox.html", function () {
$('span.bn', this).text(id);
});
Nota anche che nel tuo esempio eri clonning l'elemento #loader e il clonato L'elemento non è ancora nel DOM, dovrai inserirlo, ma non sono sicuro che tu voglia davvero clonare l'elemento ...
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow