【问题标题】:Not in DOM after $.load() with jQuery?在使用 jQuery 的 $.load() 之后不在 DOM 中?
【发布时间】:2009-09-11 06:41:36
【问题描述】:
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 无法获取它),这意味着它不能立即可用。

如何正确地做到这一点?

【问题讨论】:

  • 尝试在firefox中使用firebug,看看有没有报错。
  • 没有错误,当 $.find 找不到任何东西时,它会继续。

标签: jquery dom load


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-14
    • 2020-04-27
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多