Вопрос

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" с " test ", но не удалось (dom.find не может его получить), что означает, что он недоступен мгновенно.

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top