jQuery 和原型选择器的疯狂
-
09-06-2019 - |
题
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 变量在访问它的代码中的作用域正确。在访问变量之前,是否可以在代码中的其他位置更改该变量?类似的工具 萤火虫 可以帮助您在执行点添加断点并查看变量的值。
不隶属于 StackOverflow