2011-11-08 7 views

Répondre

4
jQuery('a[href!="test"][href$=".pdf"]'); 

Ou mieux:

jQuery('a[href$=".pdf"]').not('[href="test"]'); 

Et voici la raison:

Parce que [! Name = "valeur"] est une extension jQuery et ne fait pas partie de la spécification CSS , les requêtes utilisant [name! = "value"] ne peuvent pas tirer parti de l'amélioration des performances fournie par la méthode DOM querySelectorAll native() . Pour de meilleures performances dans les navigateurs modernes, utilisez plutôt $ ("your-pure-css-selector"). Not ('[nom = "valeur"]') à la place.

EDIT: Le "meilleur" peut ne pas être correcte ici, [valeur $ = "nom"] ne CSS2 sélecteur pur non plus, mais la documentation jQuery ne mentionne pas. Des recherches supplémentaires sont nécessaires ici ...

EDIT 2: Il semble que je n'ai pas réfléchi à cela. Ce que vous voulez sans doute est:

jQuery('a[href$=".pdf"]').not('a[href*="test"]'); 

qui se lit comme suit: sélectionner tous les éléments qui ont ahref attribut qui se termine par « .pdf » mais ne pas sélectionner a éléments qui ont « test » comme une sous-chaîne partout dans href attribut.

http://api.jquery.com/category/selectors/

+1

+1 pour répondre, en expliquant et en lisant la question correctement (que je, apparemment, n'a pas ...). Et corriger ma réponse l'aurait transformé en la vôtre, ce qui aurait été un peu redondant. –

+0

@David, ce qui ne rend pas ma réponse correcte. Voir l'édition. PS. Vous avez écrit que vous êtes assez bon avec js et css dans votre profil, peut-être pourriez-vous m'aider? :) Merci pour +1 de toute façon. – Ernest

Questions connexes