jQuery Выбрать массив в селекторе - PullRequest
0 голосов
/ 10 июня 2010

Итак, я работаю над пользовательским скриптом Greasemonkey для клиентов из ада http://clientsfromhell.net/ и застрял на чем-то.

Скрипт позволяет пользователю перемещаться по сообщениям на странице с помощью клавиш J и K. Я пытаюсь имитировать навигацию по сайту http://9gag.com/. На странице 10 сообщений, и каждый из них имеет класс post, поэтому я подумал, что простой селектор сработает и выдаст мне сообщения в массиве. Вот как я хочу, чтобы код работал:

postScroll = $('.post')[post].offset().top - 25;

До сих пор я занимался этим, и он работал,

postScroll = $('.post:nth-child(' + post + ')').offset().top - 25;

Я просто хотел узнать, есть ли правильный способ сделать то, что я попробовал в моем первом коде.

1 Ответ

2 голосов
/ 10 июня 2010

Вы можете использовать .eq(index) так:

postScroll = $('.post').eq(post).offset().top - 25;

Получает объект jquery, представляющий индекс в массиве совпадений, который вы передали. При выполнении $(selector)[index] или $(selector).get(index) оба получают элемент DOM, а не объект jQuery, который вам понадобится для .offset().

...