【问题标题】:jQuery and Prototype Selector MadnessjQuery 和原型选择器的疯狂
【发布时间】:2010-09-07 14:56:57
【问题描述】:

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

【问题讨论】:

    标签: jquery prototypejs css-selectors addclass


    【解决方案1】:

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

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

    作为一个简单的健全性检查。如果可行,您应该尝试转换为 Integer

    【讨论】:

      【解决方案2】:

      看起来我只需要在我的元素选择器中更具体一些,尽管硬编码数字会起作用很奇怪。

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

      【讨论】:

        【解决方案3】:

        确保 currentPage 变量在被访问的代码中的范围正确。在您访问变量之前,是否可以在代码中的其他地方更改该变量? Firebug 之类的工具可以帮助您在执行点添加断点并查看变量的值。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-03-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-17
          • 1970-01-01
          • 2011-11-08
          • 1970-01-01
          相关资源
          最近更新 更多