2010-04-06 5 views
1

alors voici l'idée de base. J'ai une liste de liens, et un tableau de valeurs href, je veux filtrer les liens de sorte que ma liste ne contient que les liens qui ont une valeur href qui existe dans le tableau. Je peux le faire comme ça:jQuery: éléments de filtrage avec plusieurs critères

var filtered = unfiltered.filter(function() { 
    for (var i = 0; i < ids.length; i++) 
     if ($(this).is('a[href$=' + ids[i] + ']')) return true; 
}); 

Est-ce la meilleure façon de réaliser ce que je cherche?

Répondre

0

Je pense que vous voulez .filter(). Non, attendez, vous avez donné un titre trompeur ...

Je ferais mieux de penser un peu plus.

+2

J'ai changé le titre, j'espère que c'est plus succinct. –

+0

Moins trompeur, au moins. – SamB

0

J'ai l'habitude de faire comme le filtrage des classes. Cela peut vous éviter de réexécuter le code ci-dessus si aucune modification n'est apportée à la liste de filtres. Cela peut vous éviter de réexécuter le code ci-dessus.

+0

Eh bien ce qui se passe est que j'ai une liste d'utilisateurs et une autre liste qui représente les utilisateurs dans un rôle. La liste de tous les utilisateurs est remplie une fois et chaque fois que vous sélectionnez un rôle différent à modifier, je récupère simplement un tableau d'ID utilisateur représentant les utilisateurs du rôle. Je reçois alors tous les éléments html de l'utilisateur dans la première liste qui ont un identifiant dans le tableau, les cache dans la première liste et les clone dans la deuxième liste. –

0

Si votre liste d'ID est rempli une fois, puis juste une fois générer la requête de correspondance et laissez-jQuery une correspondance en dynamique.

Voir multiple selector syntax and example.

Alors vous allez juste: $ (expr, "ul # XYZ"), tout en changeant XYZ à votre conteneur pour le groupe d'utilisateurs approprié.

Questions connexes