Не в DOM после $ .load () с помощью jQuery? - PullRequest
5 голосов
/ 11 сентября 2009
var id = 'test';
var dom = $('#loader').clone().load("Views/chatBox.html");
dom.find('span.bn').text(id);

в chatBox.html, есть:

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

Я хочу заменить «AAA» на «тест», но не удалось (dom.find не может его получить), что означает, что он не доступен мгновенно.

Как правильно это сделать?

1 Ответ

16 голосов
/ 11 сентября 2009

Если вы намереваетесь работать с возвращенными элементами, вы должны сделать это с помощью функции обратного вызова, потому что извлечение HTML выполняется асинхронно, а функция обратного вызова выполняется, когда запрос завершен, и элементы вставлены в ДОМ:

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

Также обратите внимание, что в вашем примере вы клонировали элемент #loader, а клонированный элемент еще не находится в DOM, вам придется его вставить, но я не уверен, что вы действительно хотят клонировать элемент ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...