动态添加元素上的JQuery选择器
我不知道如何引导JQuery选择在页面加载后动态插入DOM的元素(不是绑定处理程序) 例如: 如果我有HTML:动态添加元素上的JQuery选择器,jquery,selector,Jquery,Selector,我不知道如何引导JQuery选择在页面加载后动态插入DOM的元素(不是绑定处理程序) 例如: 如果我有HTML: <div id="bar"> World! </div> 那么myHappyEl将是未定义的。JQuery没有看到它,可能是因为它在加载DOM后被附加 我已经看到了很多解决一个可能相关但微妙不同的问题的建议,其中的解决方案是使用.live()/.on()在元素出现时附加一个事件侦听器。如果我想捕捉一个点击事件或什么的话,那就太棒了,但我没有;我希望能够选择
<div id="bar">
World!
</div>
那么myHappyEl将是未定义的。JQuery没有看到它,可能是因为它在加载DOM后被附加
我已经看到了很多解决一个可能相关但微妙不同的问题的建议,其中的解决方案是使用.live()/.on()在元素出现时附加一个事件侦听器。如果我想捕捉一个点击事件或什么的话,那就太棒了,但我没有;我希望能够选择动态添加的元素。插入元素后,必须分配该变量,如下所示:
var myHappyEl = $("#foo"); //Nothing, it isnt there
var foo = '<div id="foo">Hello</div>';
$("#bar").before($(foo));
myHappyEl = $("#foo");
var myHappyEl=$(“#foo”)//没什么,它不在那里
var foo='Hello';
元(“#bar”)。之前($(foo));
myHappyEl=$(“foo”);
否则,该元素在页面上不存在。如何将引用推送到您创建和插入的每个元素的数组中?似乎“在jQuery完成监视这些事情之后”没有问题-不,jQuery根本不监视元素创建。当您将选择器传递给$()时,就像在$(“#foo”)示例中一样,jQuery会查找此时匹配的元素。事实上,这是正常的。问题是,美元在(foo)之前;正在由事件处理程序执行。因此,myHappyEl=$(“#foo”);是在事件完全手动执行之前执行的(因为数据库访问)。您能解释一下这里发生了什么吗?我不太理解$(foo)部分。@kburlz--
foo
只是一个HTML字符串,$(foo)
包装该HTML字符串并创建一个jQuery元素。
<div id="foo">Hello</div>
<div id="bar">
World!
</div>
myHappyEl = $("#foo");
var myHappyEl = $("#foo"); //Nothing, it isnt there
var foo = '<div id="foo">Hello</div>';
$("#bar").before($(foo));
myHappyEl = $("#foo");