2010-03-01 3 views
2

http://api.jquery.com/jQuery.unique/ vous permet d'obtenir uniquement des éléments uniques. Est-ce que je peux savoir si un élément est déjà dans la liste ou non.jQuery éléments uniques

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

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

Y at-il un moyen de savoir si elem est déjà dans la liste ou non.

+0

Vous voulez donc une fonction qui prend deux tableaux, et renvoie les éléments qu'ils incluent en commun? –

Répondre

3

Vous pouvez utiliser :

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

Il retourne -1 si l'élément est pas dans la collection.

0

jQuery a quelques utilitaires qui pourraient aider -

Utilisation elem.each() à boucle à travers le second tableau, sur chaque entrée faire un this.inArray() contre list.makeArray vérifier() - donc vous » re regarder chaque élément dans le deuxième tableau, et voir si elle est présente dans le premier, à quel point vous pouvez effectuer n'importe quelle opération que vous recherchez. Je veux presque dire qu'il pourrait y avoir une sorte de magie de sélecteur que vous pourriez construire en une seule ligne de code, mais je ne le sais pas du haut de ma tête.

1

Si vous voulez faire fonctionner uniquement sur des éléments de la liste qui ne correspond pas à l'autre sélecteur, vous pouvez faire:

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

Si vous voulez trouver l'ensemble des éléments qui correspondent à la fois que vous pouvez faire :

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