Вопрос

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

Например, в 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, и мне нужно установить класс на кнопку активной страницы. Элементы списка создаются динамически в зависимости от количества страниц, которые мне нужны.

Это было полезно?

Решение

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top