2009-09-11 16 views
5
var id = 'test'; 
var dom = $('#loader').clone().load("Views/chatBox.html"); 
dom.find('span.bn').text(id); 

en chatBox.html, hay:

... 
<span class="bn">AAA</span> 
... 

quiero reemplazar "AAA" por "test", pero fracasaron (dom.find no puede recogerla), lo que significa que no está disponible instantáneamente.

¿Cómo hacerlo de la manera correcta?

+0

intente usar firebug en firefox, y vea si da algún error. – yoda

+0

No hay error, cuando $ .find no puede encontrar nada, continuará. – omg

Respuesta

16

Si tiene la intención de trabajar con los elementos devueltos, debe hacerlo en la función de devolución de llamada, porque la recuperación del HTML se realiza de forma asíncrona y la función de devolución de llamada se ejecuta cuando la solicitud finaliza y se inyectan los elementos al DOM:

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

también tenga en cuenta que en su ejemplo, eras clonning el elemento #loader, y el elemento clonado no está en el DOM, sin embargo, tendrá que insertarlo, pero no estoy seguro si realmente desea clonar el elemento ...

+0

¡Eres tan listo como Dios! – omg