JQuery и Prototype Selector Madness
-
09-06-2019 - |
Вопрос
Библиотеки 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 , помогут вам добавить точку останова в точке выполнения и увидеть значение вашей переменной.