Не в DOM после $ .load () с помощью jQuery?
Вопрос
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, вам придется вставить его, но я не уверен, действительно ли вы хотите клонировать элемент ...
Не связан с StackOverflow