从.each方法缓存好吗?

时间:2019-02-01 11:27:42

标签: jquery caching

我想做这样的事情:

cache = [];
jQuery("#selector1 .class").each(function(index, item) {
    cache.push({'index': index, 'item': item});
});

问题是,如果我以后再console.log,它们似乎很好,但这仍然行不通:jQuery(cache[0].item).fadeOut();,但是没有错误消息发生。 但是由于有对象,所以我认为缓存方法本身是不好的。因此,我们存储在该.each函数中本地给定的对象。当然,该项目有一天会消失,仅保留其参考。那么如何存储该对象?

1 个答案:

答案 0 :(得分:1)

好的,我刚刚尝试过,并尝试记录已存储的item。这样可以完美地工作:

$(function () {
  var cache = [];
  $("ul li").each(function (index, item) {
    cache.push({'index': index, 'item': item});
  });
  $(cache[0].item).fadeOut();
});
<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
  <li>Item 5</li>
</ul>