JQuery и безумие выбора прототипов

Обе библиотеки jQuery и Prototpye JavaScript не позволяют мне использовать переменную для выбора элемента списка по номеру индекса, хотя они принимают жестко закодированный номер.

Например, в Prototype это работает:

$$('li')[5].addClassName('active');

Но это не сработает, как бы я ни пытался преобразовать переменную как число или целое число:

$$('li')[currentPage].addClassName('active');

В jQuery я получаю похожую странность. Это будет работать:

jQuery('li').eq(5).addClass("active");

Но это не сработает снова, даже если значение currentPage равно 5, а его тип - число:

jQuery('li').eq(currentPage).addClass("active");

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

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
3
0
2 232
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы уверены, что currentPage - целое число? Попробуйте что-нибудь вроде:

var currentPage = 5;
jQuery('li').eq(currentPage);

как простая проверка работоспособности. Если это сработает, попробуйте выполнить приведение к Integer.

Убедитесь, что переменная currentPage правильно задана в коде, к которому осуществляется доступ. Можно ли изменить переменную в другом месте кода до того, как вы получите к ней доступ? Такие инструменты, как Firebug, могут помочь вам добавить точку останова в точке выполнения и увидеть значение вашей переменной.

Ответ принят как подходящий

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

jQuery('#pagination-digg li').eq(currentPage).addClass("active");

Другие вопросы по теме

Как сохранить правильное событие Javascript после использования cloneNode (true)
Как автоматически изменить размер текстового поля с помощью прототипа?
Как, используя PrototypeJ или чистый JS, избежать события щелчка, но позже вызвать исходные обработчики?
Добавьте в прототип функцию с доступом к "этому"
Проверьте, перекрывает ли период даты какой-либо из заданных периодов в массиве
Форма не встраивается в прототип при реализации примера коллекции форм symfony, если вся форма отображается сразу
Использование действительно простой проверки поля с помощью Prototype - однако адреса электронной почты yahoo, похоже, не проходят. Есть идеи?
Как заставить средство обновления ajax обновить все элементы с помощью класса mydivclass с помощью прототипа js?
Динамическое обновление определенного контейнера с помощью обновления AJAX
Как определить, существует ли функция прототипа Javascript