所有这些方式有什么区别?
//1
$('div').eq(index)
//2
$('div')[index]
//3
$($('div')[index] )
//4
$('div').get(1)
它们一样吗?
答案 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
个对象。
$('div').eq(index)
//将返回jquery对象
$('div')[index]
//将为您提供javascript DOM对象
$($('div')[index])
//将通过转换DOM对象为您提供jQuery对象
您需要不同的语法来获取对象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,效率并没有那么低。