jQuery和原型选择器的疯狂
时间:2020-03-05 18:46:44 来源:igfitidea点击:
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分页系统,并且需要在活动页面按钮上设置该类。列表项元素是根据我需要的页面数动态创建的。
解决方案
回答
我们确定" currentPage"是整数吗?尝试类似的东西:
var currentPage = 5; jQuery('li').eq(currentPage);
作为简单的健全性检查。如果可行,则应尝试将其强制转换为" Integer"。
回答
确保currentPage变量在访问它的代码中正确地确定了作用域。在访问变量之前,可以在代码中的其他位置更改该变量吗?诸如Firebug之类的工具可以在执行时添加断点,并查看变量的值。
回答
看起来我只需要在元素选择器中更具体一些,尽管硬编码的数字可以工作很奇怪。
jQuery('#pagination-digg li').eq(currentPage).addClass("active");