我正在从PrototypeJS迁移到jQuery,我在将功能应用到添加到简单横幅脚本中的新DOM元素时遇到了问题。
基本上,在页面加载时,使用append()将新的DIV元素放入DOM中,据我所知,这是在jQuery中完成的,而不是Prototype的Element对象。
SELECT uu.* AS dbo.Users uu FROM users WHERE (username = @Username)
检查Firebug后,元素已成功添加到DOM中,并立即隐藏。然后第一个(0)元素应该显示...但是,Firebug给我这个错误:
$.each(Banner.data, function(i, e) {
$('#banner_area').append("<div class='banner_slot' id='bannner-"+ i +"'>...[nested elements]</div>").hide();
});
$('.banner_slot').get(0).show();
我确信这很简单,因为我多年来一直在使用Prototype,但是需要转向jQuery,因为......更多人使用它,因此资源无限好。
我在这里缺少两个根本区别吗?
答案 0 :(得分:9)
$('.banner_slot').get(0).show();
更改为
$('.banner_slot').eq(0).show();
.get()
返回DOM元素,而.eq()
返回jQuery对象,.show()
是jQuery API。
有关.get()
和.eq()
结帐jQuery API docs
答案 1 :(得分:2)
您需要更新
$('.banner_slot').get(0).show();
到
$($('.banner_slot').get(0)).show();
注意:get()
为您提供了一个DOM元素,show()
适用于jQuery对象,因此,您需要将其转换为jQuery对象才能使用该函数。 / p>