4

jQuery 和 Prototpye JavaScript 库都不允许我使用变量来按索引号选择列表项元素,尽管它们接受硬编码的数字。

例如,在原型中这有效:

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

但是无论我如何尝试将变量转换为数字或整数,这都行不通:

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

在 jQuery 中,我得到了类似的怪异。这将起作用:

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

但是即使 currentPage 的值为 5 并且它的类型是 number,这也不会再次起作用:

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

我正在尝试创建一个 JavaScript 分页系统,我需要在活动页面按钮上设置类。列表项元素是根据我需要的页数动态创建的。

4

3 回答 3

5

你确定这currentPage是一个整数吗?尝试类似:

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

作为一个简单的健全性检查。如果可行,您应该尝试转换为Integer.

于 2008-09-02T20:43:23.163 回答
2

确保 currentPage 变量在被访问的代码中的范围正确。在您访问变量之前,是否可以在代码中的其他地方更改该变量?Firebug等工具可以帮助您在执行点添加断点并查看变量的值。

于 2008-09-02T20:53:30.970 回答
2

看起来我只需要在我的元素选择器中更具体一些,尽管硬编码数字会起作用很奇怪。

jQuery('#pagination-digg li').eq(currentPage).addClass("active");
于 2008-09-02T22:13:31.013 回答