2009-09-11 13 views
5
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 può prenderlo), che significa che non è disponibile immediatamente.

Come si fa nel modo giusto?

+0

prova a usare firebug in firefox e vedi se emette un errore. – yoda

+0

Nessun errore, quando $ .find non riesce a trovare nulla, andrà avanti. – omg

risposta

16

Se si intende lavorare con gli elementi restituiti, è necessario farlo sulla funzione di callback, ovvero perché il recupero dell'HTML viene eseguito in modo asincrono e la funzione di callback viene eseguita quando la richiesta è terminata e gli elementi vengono iniettati al DOM:

var id = 'test'; 
$('#loader').load("Views/chatBox.html", function() { 
    $('span.bn', this).text(id); 
}); 

si noti inoltre che nel tuo esempio, si dovesse clonning l'elemento #loader, e l'elemento clonato non è nel DOM ancora, si dovrà inserire, ma non sono sicuro se vuoi davvero clonare l'elemento ...

+0

Sei intelligente come dio! – omg