это хорошо для кэширования из метода .each? - PullRequest
0 голосов
/ 01 февраля 2019

Я хочу сделать что-то вроде этого:

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

проблема в том, что если я позже console.log их, это кажется хорошим, все еще это не работает: jQuery(cache[0].item).fadeOut();, но сообщение об ошибке не происходит,Но поскольку есть объект, я думаю, что сам метод кэширования плох.Таким образом, мы храним объект, который локально передается в этой функции .each.Конечно, этот предмет когда-нибудь исчезнет, ​​останется только его ссылка.Как сохранить этот объект тогда?

1 Ответ

0 голосов
/ 01 февраля 2019

Хорошо, я только что попробовал и попытался зарегистрировать 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...