2008-09-02 3 views
3

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

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

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

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

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

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

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

Но это не будет работать снова, даже при том, что стоимость CurrentPage составляет 5 и его тип номер:

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

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

ответ

1

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

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

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

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

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

2

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

Смежные вопросы