我想将节点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>
答案 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);
});