2008-09-02 66 views
3

jQuery和Prototpye JavaScript库都拒绝允许我使用变量通过索引号选择列表项元素,尽管它们接受硬编码的数字。jQuery和Prototype Selector Madness

例如,在原型工作的:

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

但是,这不会不管我如何努力投下变量数字或整数工作:

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

在jQuery中我得到类似的怪异。这将工作:

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

但是,即使当前页的值是5,这将不会再工作,它的类型是数字:

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

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

回答

1

它看起来像我只是需要在我的元素选择器中更具体,虽然它是奇怪的,一个硬编码的数字将工作。

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

你确定currentPage是一个整数吗?尝试是这样的:

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

一个简单的合理性检查。如果可以的话,你应该试试Integer

2

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