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

标签 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无法获取它),这意味着它不能立即可用。

如何正确地做到这一点?

最佳答案

如果你打算处理返回的元素,你应该在回调函数上进行,这是因为 HTML 的检索是异步完成的,回调函数在请求结束并且元素被注入(inject)时执行DOM:

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

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

关于jquery - 使用 jQuery $.load() 后不在 DOM 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1409332/

相关文章:

javascript - 在 Jquery.load 调用 JavaScript 函数

javascript - 如何防止表单刷新但在同一页面提交表单数据?

javascript - NamedNodeMap 对象内的 Attr 对象索引问题

JavaScript DOM : transfer element between frames

jQuery:按需加载 css + 完成后回调

jquery - 最后加载一些 CSS 可以加快页面加载时间吗?

javascript - jQuery 无法从 JavaScript 对象获取正确的下拉菜单值

javascript - jQuery 不会动画

javascript - 为什么我的自定义 DOM 事件没有到达我的事件监听器?

javascript从客户端保存/加载图像+文本数据