使用jQuery在$ .load()之后不在DOM中?

omg*_*omg 5 jquery dom load

var id = 'test';
var dom = $('#loader').clone().load("Views/chatBox.html");
dom.find('span.bn').text(id);
Run Code Online (Sandbox Code Playgroud)

在chatBox.html中,有:

...
<span class="bn">AAA</span>
...
Run Code Online (Sandbox Code Playgroud)

我想用"test"替换"AAA",但是失败了(dom.find无法获取它),这意味着它无法立即获得.

怎么做正确的方法?

CMS*_*CMS 16

如果您打算使用返回的元素,则应该在回调函数上执行此操作,这是因为HTML的检索是异步完成的,并且在请求结束并且元素被注入DOM时执行回调函数:

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

另请注意,在您的示例中,您正在克隆 #loader元素,并且克隆元素尚未在DOM中,您必须插入它,但我不确定您是否真的想要克隆该元素. .