获取jquery中只有一个对象的最佳方法
问题描述:
我正在jquery中构建一个插件。正如他们在文档中所说的,这引用了一个jquery对象。因此您可以执行.each()
,然后返回与插件构造函数中一样多的对象。 但是,这个插件返回一个标量值,所以我只能对第一个对象起作用。获取jquery中只有一个对象的最佳方法
如果我想从jquery可能的对象数组中获得第一个元素,那么您认为最好的方法是什么?
$.fn.totalWidth = function(element){
$this = $(this.get(0)); //option 1
//OR
$this = this.first(); //option 2
});
我会感激你的观点。
答
里面的插件范围,
this.first()
或
this.eq(0)
将获得的第一个元素的最佳途径,因为this
引用的插件jQuery对象,而一点儿也不具有重新包装。使用.get()
来获取本地元素只是为了重新包装它似乎是不必要的。
答
$ this = $(this.get(0));将检索与查询匹配的dom元素,其中first()将为您提供jquery对象。
如果你想这样做的结果对象jQuery的操作,那么选项2 去如果你想纯JavaScript DOM对象去选择1
只是猜测这里...但得到(0)似乎假定数组中存在项目。如果不是,它会返回一个索引超出范围。 。首先可以编码检查,并顺利返回,这是我的偏好。 – Scottie
@Scottie - 如果没有第一个元素,就无法真正链接插件,所以隐含了很多东西。 – adeneo