我动态创建一个列表内容:
for (var i = 0; i<length; i++) {
var $li = $('<li />', {
text: ....
}).appendTo($list);
myArray.push($li);
// This doesn't work
$(myArray).click(function (e) { alert('cc'); });
但是当我得到所创建元素的父元素时,它就起作用了
// This works
$('ul.liste').first().find('li').click(function (e) {alert('cc'); });
$(myArray)
和$('ul.liste').first().find('li')
有什么区别?- 如何正确地将 js 数组转换为 jquery 集合?我认为用
$()
包装数组会起作用,但显然不行。
最佳答案
您可以使用 add
代替推送:
var $set = $();
for (var i = 0; i<length; i++) {
var $li = $('<li />', {
text: ....
}).appendTo($list);
$set = $set.add($li);
}
$set.click(...
如果您更喜欢构建原生数组然后将其转换为 jQuery 集合,那么您可以这样做
var $set = $.add.apply($(), myArray);
关于javascript - 无法将事件绑定(bind)到包含 jquery 对象的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41331314/