用于动态生成元素的jQuery选择器

pio*_*ion 3 jquery

我有以下html代码段:

<div id="contentX"><h1>MyHeading1</h1></div>
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式成功选择jQuery代码段:

console.log($('#contentX h1'));
Run Code Online (Sandbox Code Playgroud)

输出是

[<h1>?MyHeading1?</h1>?]
Run Code Online (Sandbox Code Playgroud)

然而,它并没有当我动态加载的内容合作.例如,

html代码段:

<div id="content"></div>
Run Code Online (Sandbox Code Playgroud)

jQuery代码片段:

$('#content').load('foo.html')); // the content is loaded correctly with <h1> tag
Run Code Online (Sandbox Code Playgroud)

jQuery的代码片段并没有工作:

console.log($('#content h1')); // it returns []. I was expecting to return something.
Run Code Online (Sandbox Code Playgroud)

我想知道这是否是类似于事件绑定的行为:.click()vs .live().

在此先感谢您的帮助.

Jon*_*ant 8

load函数是异步的,这意味着它启动加载,然后在后台继续执行,然后继续执行脚本的其余部分.

它不等待load先完成.

您可以将一个函数附加到load调用,以告知jQuery在加载完成后执行此操作.
这是一个例子:

$('#content').load('foo.html', function() {     
    console.log($('#content h1'));
});
Run Code Online (Sandbox Code Playgroud)