使用jQuery访问动态创建的项目?

我有一个页面,其中一些HTML动态添加到页面。

这是创建的html和javascript:

$('#btn').click(function() { alert("Hello"); }); Button

查看我的Firebug控制台,我收到一条错误消息:

TypeError:$(“#btn”)为空

jQuery最初是在页面上加载的。

我在这做错了什么?

您必须将on() (或on()方法中定义的事件绑定on()运行jQuery时DOM中存在的元素。通常这是在$(document).ready()或类似。

绑定到将在页面加载/ DOM就绪的DOM中存在的$('#btn')元素的最近元素。

假设您将$('#btn')加载到#container div (例如)中,则给出:

  

然后使用:

 $('#container').on('click', '#btn', function(){ alert('Button clicked!'); }); 

使用.on将事件连接到按钮。 检查这个答案:

动态创建元素的事件绑定?

 $(document).ready(function() { $('body').on('click', '#btn', function() { alert("Hello"); }); }) 

编辑:我添加了文档就绪代码,您需要确保这样做。

固定。

您正在寻找.on这里将click事件绑定到动态添加的节点。

 $("#parent_container").on("click", "#btn", function () { alert("hello") }) 

文档: http : //api.jquery.com/on/

尝试

   

代码中的问题是您在创建按钮之前将事件附加到按钮。

正确的版本是:

  
Button

这应该做的工作。

使用jQuery的.live()函数