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

时间:2009-09-11 06:41:37

标签: jquery dom load

var id = 'test';
var dom = $('#loader').clone().load("Views/chatBox.html");
dom.find('span.bn').text(id);
在chatBox.html中

,有:

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

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

如何正确地做到这一点?

1 个答案:

答案 0 :(得分:16)

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

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

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