所有这些方式有什么区别?
//1
$('div').eq(index)
//2
$('div')[index]
//3
$($('div')[index] )
//4
$('div').get(1)
他们是一样的吗?
所有这些方式有什么区别?
//1
$('div').eq(index)
//2
$('div')[index]
//3
$($('div')[index] )
//4
$('div').get(1)
他们是一样的吗?
第一个和第三个返回 jQuery 对象,而第二个和第四个返回 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]"
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
$('div').eq(index)
这将返回一个 JQuery 对象
$('div')[index]
这会给你javascript对象
v1 $('div').eq(index)
::: 返回一个包含一个 div 的 jQuery 包装的集合。
v2 $('div')[index]
::: 返回对 DOM 元素的引用(不是 jQuery 包装的)
v3 $($('div')[index])
::: 返回一个包含一个 div 的 jQuery 包装的集合。这是 v1 的冗长且低效的版本。
你没有问$('div').get(index)
,这是实现 v2.2 的另一种方式。AFAIK,它的效率并没有大大降低。