使用jQuery在$ .load()之后不在DOM中?
题
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的检索是异步完成的,并且当请求结束并且元素被注入时,回执函数会执行DOM:
var id = 'test';
$('#loader').load("Views/chatBox.html", function () {
$('span.bn', this).text(id);
});
另请注意,在您的示例中,您克隆 #loader元素,并克隆了元素还没有在DOM中,你必须插入它,但我不确定你是否真的想要克隆元素......
不隶属于 StackOverflow