jQuery:不能只选择附加的元素

这是事件发生的事情:

$('div#pages').append($('
...
'));

然后,在另一个事件上它没有这样做:

 var page = $('div.page#test'); // returns empty array 

我已经调试过,附加的html在追加后出现在文档结构中,但未能被选中。 在浏览器控制台中执行相同操作非常有效
可能是什么问题呢?

使用.find() http://api.jquery.com/find

 var page = $('div#pages').find('div.page#test'); 

有同样的问题,发现如果我在添加div之前添加了监听器,它就找不到div。 确保在创建对象后添加侦听器。

我最近在动态插入元素时不得不使用黑客来解决这个问题。 我改变了这个:

 var $item = $('#appendedItem1'); // returns: [] 

对此:

 var $item = $(document.getElementById('appendedItem1')); // returns: [select#appendedItem1] 

我知道它似乎应该是完全相同的东西,但只有第二个起作用。

你只需要使用live方法:

 $('.element').live('click', function(){ alert($(this).html()); }); 

在课程名称page上错过了引号

也错过了) append()

应该

  $('div#pages').append($('
...
'));

代替

 $('div#pages').append($('
...
');