2013-05-20 41 views
0

我正在jquery中构建一个插件。正如他们在文档中所说的,这引用了一个jquery对象。因此您可以执行.each(),然后返回与插件构造函数中一样多的对象。 但是,这个插件返回一个标量值,所以我只能对第一个对象起作用。获取jquery中只有一个对象的最佳方法

如果我想从jquery可能的对象数组中获得第一个元素,那么您认为最好的方法是什么?

$.fn.totalWidth = function(element){ 
    $this = $(this.get(0)); //option 1 
    //OR 
    $this = this.first(); //option 2 
}); 

我会感激你的观点。

+0

只是猜测这里...但得到(0)似乎假定数组中存在项目。如果不是,它会返回一个索引超出范围。 。首先可以编码检查,并顺利返回,这是我的偏好。 – Scottie

+0

@Scottie - 如果没有第一个元素,就无法真正链接插件,所以隐含了很多东西。 – adeneo

回答

1

里面的插件范围,

this.first() 

this.eq(0) 

将获得的第一个元素的最佳途径,因为this引用的插件jQuery对象,而一点儿也不具有重新包装。使用.get()来获取本地元素只是为了重新包装它似乎是不必要的。

1

$ this = $(this.get(0));将检索与查询匹配的dom元素,其中first()将为您提供jquery对象。

如果你想这样做的结果对象jQuery的操作,那么选项2 去如果你想纯JavaScript DOM对象去选择1

相关问题