$ .unique函数有些问题

时间:2014-05-15 04:35:03

标签: jquery arrays

我想将节点div元素转换为array然后如果有相同的数组我想要摆脱它们。我到底在哪里弄错了? 谢谢

的jQuery

var div = $('div').get();
var arr = $.makeArray(div);
var rev = $.unique(arr);
$(rev).appendTo('body');

HTML

<div>1</div>
<div>1</div>
<div>2</div>
<div>3</div>
<div>3</div>
<div>3</div>

DEMO

1 个答案:

答案 0 :(得分:2)

您的错误在于您假设$.unique按内容比较元素。

它只是从选择中删除了完全相同的节点。

当您使用.add()将一个选择集与另一个选择集连接起来时,可能会发生这种情况。

UPD :我能想到的最简单的解决方案是http://jsfiddle.net/6qe4c/2/

var div = $('div');

var values = [];
div.each(function() {
    var $i = $(this),
        value = $i.text();
    if (values.indexOf(value) != -1) {
        $i.remove();
        return;
    }

    values.push(value);
});