Não no DOM após $ .load () com jQuery?
Pergunta
var id = 'test';
var dom = $('#loader').clone().load("Views/chatBox.html");
dom.find('span.bn').text(id);
em chatBox.html, existe:
...
<span class="bn">AAA</span>
...
Eu quero substituir "AAA" com "teste", mas falhou (dom.find não pode buscá-lo), o que significa que não é disponível instantaneamente.
Como fazer isso da maneira certa?
Solução
Se você pretende trabalhar com os elementos retornados, você deve fazê-lo na função de retorno, que é porque a recuperação do HTML é feita de forma assíncrona, e executa a função de retorno quando o pedido tenha terminado e os elementos são injetados para DOM:
var id = 'test';
$('#loader').load("Views/chatBox.html", function () {
$('span.bn', this).text(id);
});
Observe também que no seu exemplo, você fosse clonning o elemento #loader, eo clonado elemento não está no DOM ainda, você terá que inseri-lo, mas eu não tenho certeza se você está realmente querendo clonar o elemento ...
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow