tags:

views:

91

answers:

3

http://api.jquery.com/jQuery.unique/ lets you get only unique elements. Is there I can find out if an element is already in the list or not.

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

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

Is there a way to find out if elem is already in the list or not.

+3  A: 

You can use index():

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

It will return -1 if the element isn't in the collection.

cletus
A: 

jQuery has some utilities that might help -

Use elem.each() to loop through the second array, on each entry do a this.inArray() check against list.makeArray() - so you're look at each item in the second array, and seeing if it's present in the first one, at which point you can perform whatever operation you're looking for.

I almost want to say that there might be some sort of selector magic you could build into one line of code, but I don't know it off the top of my head.

matt lohkamp
+1  A: 

If you want to operate only on elements in the list that don't match the other selector, you can do:

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

If you want to find the set of elements that match both you can do:

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