【问题标题】:JQuery Unique() function not working properlyJQuery Unique() 函数无法正常工作
【发布时间】:2013-11-26 14:01:19
【问题描述】:

我正在开发一个允许用户选择多个“卡片”的界面。每张卡片都有一个“数据名称”属性,也可能有一个相应的菜单项。如果他们在主视图中选择卡片,它也会突出显示菜单项。单击某些内容时,我将“选定”类添加到其中。然后,我获取所有“选定”项目并计算唯一数据名称属性以获取实际选定项目的数量。

这在选择最多 5 个项目时非常有效。出于某种原因,在第 6 项上,unique() 函数似乎停止正常工作。我无法用 jsfiddle 复制这个问题,但代码不太复杂,因为在本地我也在处理“类型”,但我认为这与问题无关。

所以这里是我选择第5项后相关数组的一些截图。

在这里您可以看到所有选定的项目。正如预期的那样,有 10 个。 这个断点就在 unique() 调用之前。

在这里您可以看到独特的选定项目。正如预期的那样,有 5 个。

然后我选择了第 6 个…… 12,果然不出所料……

啊,现在我们有了一个神秘的复制品! 为什么???

这种情况始终如一地发生;每一次。请注意我最后选择哪个项目并不重要。我已经添加了多达 10 个虚拟项目,而且它总是第 6 个感到困惑。

【问题讨论】:

    标签: javascript jquery arrays unique


    【解决方案1】:

    取自jQuery.unique()

    说明: 对 DOM 元素数组进行就地排序,删除重复项。请注意,这仅适用于 DOM 元素数组,而不适用于字符串或数字。

    如果你想得到一个唯一的字符串或数字数组,你需要使用你自己的函数。这是来自a previously answered question similar to yours的一个:

    function unique(array) {
        return $.grep(array, function(el, index) {
            return index == $.inArray(el, array);
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      相关资源
      最近更新 更多