请问$("#id").focus();和$("#id")[0].focus();这两种写法有什么区别?手册上说第一种方法是触发元素的每一个onfocus事件,如果像获取焦点,要用DOM方法,也就是第二种写法,但是我想来想去也想不出两个方法的区别。而且我试了下,用第一个方法,也能获取指定的元素的焦点的。请问他们之间的区别在哪?我的jquery是 jquery-1.4.2.min.js

解决方案 »

  1.   

    $("#id")[0].focus();
    这个是索引第一个的focus()事件,通常在name都相同时用
    $("#id").focus();
    这个是全局
      

  2.   

    理论上有区别,第一个是jq里的每一个元素都调用一次focuc(),第二个只对jq里的第一个元素调用一次,实际上由于是用id来获取元素,其jq里的元素必然只有一个。所以无实际区别。
      

  3.   

    请问$(".class").focus();和$(".class")[0].focus();页面中.class超过1个以上,就能看出差别了
      

  4.   

    第一方式[0]是获得的dom对象  而第二个直接是jqery对象 第二个的focus可以对事件进行叠加 就是如果定义两次方法    客户端会依次执行  而第一个的话 后面的方法会覆盖前面的方法!!
      

  5.   

    ID一般都是唯一的,所以看不出区别。$("#id")是一个对象的集合,哪怕里面只有一个对象他也是个集合。而$("#id")[0]是一个对象。这两者有本质上的区别。
      

  6.   

    去谷歌上查一下jquery对象和dom对象转换
    你就知道了$("#id") 是jquery对象,只能用jquery方法
    $("#id")[0]是dom对象,只能用dom方法
      

  7.   

    顺便说一下,jquery对象集合取第一个应该是
    $("#id").eq(0)
      

  8.   

    $("#id") 整个页面的叫id的标签
    $("#id")[0]整个页面的所有叫id标签的第一个(但是一般来说一个页面中的id是唯一的不建议有多个相同名字的标签)
      

  9.   

    擦 我都晕了一个是jquery的响应事件,当focus时会触发方法一个是javascript使控制获得焦点, 两个都不一码事。你们夸夸其谈有意思吗?