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($('...');