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 分页系统,并且需要在活动页面按钮上设置该类。列表项元素是根据我需要的页面数量动态创建的。

有帮助吗?

解决方案

看起来我只需要在元素选择器中更加具体,尽管硬编码数字可以工作很奇怪。

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

其他提示

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

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

作为一个简单的健全性检查。如果有效,您应该尝试投射到 Integer.

确保 currentPage 变量在访问它的代码中的作用域正确。在访问变量之前,是否可以在代码中的其他位置更改该变量?类似的工具 萤火虫 可以帮助您在执行点添加断点并查看变量的值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top