2015-11-10 5 views
1

Я храню элементы jQuery в массиве, и мне нужно их восстановить.Получить элемент jQuery из массива

Я сейчас делаю это как

var arr = []; 

arr.push($(someElement)); 

Тогда я стараюсь, чтобы получить его, выполнив:

arr.indexOf($(someElement)); 

Но это не работает, так как все элементы JQuery выглядят одинаково e.fn.e.init[1]

Я бы предпочел не называть (ключ) каждый из них, потому что у меня много элементов, и если бы я мог ссылаться на них так же, как я пытаюсь, мне было бы лучше.

Как вы это сделаете?

ответ

0

Почему вы храните объекты jQuery в массиве? Вы не можете сохранять объекты jQuery для сохранения своих состояний, поскольку объекты JQuery являются просто оболочками элементов DOM, выбранных вашим селектором. Если DOM изменяется, то эти изменения будут отражаться объектом jQuery. Если вы хотите сохранить старые значения, вы должны сохранить свойства, которые хотите сохранить, а не весь объект jQuery. Кроме того, можно также хранить строку JQuery внутри массива:

var arr = []; 

arr.push(someElement); 

При необходимости вы можете запросить, если ваш элемент по-прежнему содержится в массиве

if (arr.indexOf(someElement)){ 
    $(someElement).dostuff...... 
} 
+0

Привет - Я хочу, чтобы сохранить ссылку к элементам системы проверки ошибок на входах. Если на входе больше нет ошибок, я бы подключил его. Если у него все еще есть ошибки, то он все еще находится в массиве, и я все еще могу обратиться к ним и сделать их границы границ красными и делать любые другие действия над ними. –

+0

В этом случае вы можете просто иметь массив, содержащий элементы 'someElement', а затем вызвать оператор запроса' $ ', когда вам нужно обратиться к ним. – Jaco

+0

Спасибо большое! Работая таким образом :-) –