![](/img/trans.png)
[英]Is there a better way than this to create a toggle function just with JavaScript (no JQuery at all)?
[英]Better way to create a jQuery collection
我写了一个这样的插件来获取集合的一个子集:
jQuery.range = function(start, end, includingTheLast) {
var ret = $([]), i = 0;
while (!this.eq(i).is(start) && i < this.length)
i++;
for (; i < this.length && !this.eq(i).is(end); i++) {
ret = ret.add(this[i]); // we can do better than this
}
if (includingTheLast) ret = ret.add(this[i]); // we can do better than this
return this.pushStack(ret, 'range');
}
它的用法如下:
$('a').range(':eq(2)', '#stop')...
看ret = ret.add(this[i])
似乎很慢,这是一种明智的方法吗? 我应该建立一个数组然后将其转换为jQuery对象吗? 这是微优化吗?
jQuery构造函数还接受DOM元素数组,并将它们包装在jQuery对象中。 因此,如果您反对使用.add,则可以将它们全部推送到一个数组(作为dom元素),然后立即包装整个内容。
我还没有进行性能测试,看看会更快。
参考: http : //api.jquery.com/jQuery/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.