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 分页系统,我需要在事件页面按钮上设置类。列表项元素是根据我需要的页面数量动态创建的。
最佳答案
您确定currentPage
是一个整数吗?尝试这样的事情:
var currentPage = 5;
jQuery('li').eq(currentPage);
作为简单的健全性检查。如果有效,您应该尝试转换为Integer
。
关于jQuery 和原型(prototype)选择器的疯狂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40590/