1

我试图了解我的错误在哪里,但现在看不到,我的 js 是有效的并且可以使用其他 html 模板:

//DATES : wrap the submenu by year
var arr = $("#submenu a").map(function () {
return $(this).attr('year');
}).get();
var results = $.unique(arr);
var i;

警报(结果);

这工作正常,但不适用于我在这个 Fiddle 中制作的结构:http: //jsfiddle.net/moabi/c9nbu/ 结果:year-2013,year-2012,year-2013 并不是真正独特的,对吧? !谢谢

4

1 回答 1

2

jQuery.unique()根据 jQuery 文档,仅从 DOM 元素数组中排序和删除 dup,而不是字符串数组。

如果要从字符串数组中删除 dups,可以使用此函数:

function removeDups(arr) {
    var result = [], map = {}, item;
    for (var i = 0; i < arr.length; i++) {
        item = arr[i];
        if (!map[item]) {
            result.push(item);
            map[item] = true;
        }
    }
    return(result);
}

这是您的 jsFiddle 修改以使用它:http: //jsfiddle.net/jfriend00/MBMsz/

于 2013-05-08T03:17:15.520 回答