首页 新闻 会员 周边

jquery小问题(入门级)

0
悬赏园豆:20 [已解决问题] 解决于 2010-11-16 17:50

        $("#reset").click(
            function()
            {
                $("#form2")[0].reset();
            }
        );

我有一个form,ID为form2,点击reset(超链接)时,呼叫表单的reset()方法,功能可以实现,但是我不明白[0]的含义。。。而且必须为0,不明白,谢谢。

问题补充: 1楼的回答我不是很明白,$("#form2")不就是确定了唯一,后面的[0]还是不明白它的功能含义,希望能着重在[X]的含义上谢谢。 ======================= 首先谢谢2楼, 但是我不明白,为什么$("#reset").click不需要写成$("#reset")[0].click();呢? 或者什么时候要使用[0],什么时候可以不用使用呢 谢谢大家,大家的回答都很好,所以我提高了分值,让大家都能拿到分,不过我的分不多,就再拿出10分来吧。谢谢··
东宫有喜的主页 东宫有喜 | 初学一级 | 园豆:3
提问于:2010-11-13 16:34
< >
分享
最佳答案
0

因为jQuery选择器都是以集合的方式返回   [0]==eq(0)==get(0)

不同的是eq(0)返回的是jQuery对象

get(0)是dom对象

 

 

·········------------------------------------------

因为你$("#id")  dom的ID大家都知道在页面上唯一的所以不用[0]

前面已经说了[0]返回的是dom对象  是不能直接.click()的

至于说什么场合用   比如

你不能确定选择器的返回数量  如下

$("#ul > li")[index] dom对象  或 eq(index) jquery对象 或get(index)dom对象

你要准备操作ul下的某个li  就要用如上方式

收获园豆:10
写代码的小2B | 老鸟四级 |园豆:4371 | 2010-11-13 17:07
其他回答(2)
0

首先加上[0]是把jquery包装的对象转换成dom对象,再者因为ID代表的就是唯一,所以索引0就是指定表单元素form2

收获园豆:5
三桂 | 园豆:3565 (老鸟四级) | 2010-11-13 16:41
$("#reset")//经过jquery包装过的对象集合,理论上length等于1,通过集合索引0来访问 $("#reset")[0]//通过这种方式转换成普通的DOM对象 $("#reset")[0]这样之后就不能再享用jquery提供的方法了... 楼主完全可以不用在后面加[0],只是有的时候加[0]转换成普通dom对象之后操作更简洁点.
支持(0) 反对(0) 三桂 | 园豆:3565 (老鸟四级) | 2010-11-13 18:02
0

$("#form2")是获取jquery对象集合,加上[0]是把jquery对象转化成dom对象集合,0是获取这个集合中的一个,因为id为form2的表单只有一个,所以[0]就指向他下面的reset()方法了。

收获园豆:5
滴水冰寒 | 园豆:43 (初学一级) | 2010-11-13 18:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册