jQuery和Prototpye JavaScript库都拒绝允许我使用变量来按索引号选择列表项元素,尽管它们接受硬编码的数字。
例如,在Prototype中,这有效:
$$('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分页系统,我需要在活动页面按钮上设置类。列表项元素是根据我需要的页数动态创建的。
答案 0 :(得分:5)
您确定currentPage
是一个整数吗?尝试类似:
var currentPage = 5;
jQuery('li').eq(currentPage);
作为简单的健全检查。如果可行,您应该尝试转换为Integer
。
答案 1 :(得分:2)
确保currentPage变量在访问它的代码中正确确定范围。在访问变量之前,变量是否可以在代码中的其他位置更改?像Firebug这样的工具可以帮助您在执行点添加断点并查看变量的值。
答案 2 :(得分:1)
看起来我只需要在我的元素选择器中更具体,尽管硬编码的数字很有用。
jQuery('#pagination-digg li').eq(currentPage).addClass("active");