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?

Foi útil?

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
scroll top