2010-03-01 104 views
2

http://api.jquery.com/jQuery.unique/可让您获得唯一的元素。有没有我可以找出一个元素是否已经在列表中。jQuery独特元素

list = $('#container p a'); 

elem = $('#container div a:first'); 

有没有办法找出elem是否已经在列表中。

+0

所以你想要一个接受两个数组的函数,并返回它们包含的共同元素? – 2010-03-01 22:38:23

回答

3

您可以使用:

if (list.index(elem[0]) == -1) { 
    ... 
} 

它将返回-1,如果元素不是收藏。

0

jQuery有一些实用工具,可以帮助 -

使用elem.each()遍历第二阵列,每个条目上做一个this.inArray()核对list.makeArray() - 所以你”重新查看第二个数组中的每个项目,并查看它是否存在于第一个数组中,此时您可以执行您正在查找的任何操作。

我几乎想说,可能会有某种选择器魔法可以构建成一行代码,但我不知道它在我头顶。

1

如果你想只在没有其他选择匹配列表元素进行操作,你可以这样做:

var difference = $(list).not('#container div a:first'); 

如果你想找到一组元素的匹配都可以做:

var intersect = $(list).filter('#container div a:first');