jQuery 集合缓存
有谁知道缓存选择器返回的对象集合的好方法。
var $platforms = $(".platforms");
var i = 0, l = $platforms.length, current;
for(;i<l;i++) {
current = $($platforms[i]); //calling jQuery() in a loop. Should be cached
}
上面的代码为 $(".platform")
返回的每个元素创建了一个 jQuery 实例(当它应该被缓存时)。有什么简单的方法可以做到这一点吗?
Does anyone know a good way to cache a collection of objects returned by a selector.
var $platforms = $(".platforms");
var i = 0, l = $platforms.length, current;
for(;i<l;i++) {
current = $($platforms[i]); //calling jQuery() in a loop. Should be cached
}
The above code creates a jQuery instance of each element returned by $(".platform")
when it should be cached. Is there any easy way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要从字面上获取元素的 jQuery 包装器数组,您可以使用
.map()
< /a> 像这样:然后在你的
for
循环中$platforms[i]
将是一个 jQuery 对象。这取决于你想要什么,有
.each()
类似this:或者使用
.eq()
获取 jQuery 包装元素循环中的索引,如下所示:这完全取决于您想要的内容...为什么您要循环遍历元素?大多数 jQuery 操作对集合进行操作,而不是对单个元素进行操作,因此例如
$(".platforms").bind(...)
将绑定到所有元素找到选择器。To literally get an array of jQuery wrappers of elements, you can use
.map()
like this:Then in your
for
loop$platforms[i]
will be a jQuery object.It depends what you're after though, there's
.each()
like this:Or use
.eq()
to get a jQuery wrapped element at that index in your loop, like this:It all depends on what you're after....why are you looping through the elements? Most jQuery operations operate on sets, not individual elements, so for example
$(".platforms").bind(...)
would bind to all of the elements that selector found.