jQuery的$(选择器).eq(索引)和$(选择器)[index]是一样的吗?

时间:2012-12-07 11:45:07

标签: javascript jquery

所有这些方式有什么区别?

//1
$('div').eq(index) 

//2
$('div')[index] 

//3
$($('div')[index] )

//4
$('div').get(1)

它们一样吗?

ScreenShot

4 个答案:

答案 0 :(得分:6)

没有

第一个第三个​​返回jQuery对象,而 second forth 返回DOM元素:

$("div").eq(index) === $($("div")[index]);  // --> jQuery object

$("div")[index] === $("div").get(index);    // --> DOM element

您可以在此处阅读最后一个案例: http://api.jquery.com/get/

如果您需要查看不同类型之间的区别,可以尝试在控制台中运行以下命令:

Object.prototype.toString.call($("div").eq(index)); // "[object Object]"
Object.prototype.toString.call($("div")[index]);    // "[object HTMLDivElement]"

答案 1 :(得分:3)

First and third会获得jQuery个对象,第二个会给你DOM个对象。

  1. $('div').eq(index) //将返回jquery对象

  2. $('div')[index] //将为您提供javascript DOM对象

  3. $($('div')[index]) //将通过转换DOM对象为您提供jQuery对象

  4. 您需要不同的语法来获取对象id的实例属性。

    idofobject = $('div').eq(index).attr('id') //jQuery
    
    idofobject = $('div')[index].id            //javascript
    

答案 2 :(得分:2)

$('div').eq(index) 这将返回一个JQuery对象

$('div')[index] 这会给你javascript对象

答案 3 :(得分:1)

  • v1:$('div').eq(index) ::返回包含一个div的jQuery包装集合。

  • v2:$('div')[index] ::返回对DOM元素的引用(不是jQuery包装)

  • v3:$($('div')[index]) ::返回包含一个div的jQuery包装集合。这是v1的详细且效率低下的版本。

您没有询问$('div').get(index),这是实现v2的另一种方式。 AFAIK,效率并没有那么低。