2010-11-23 4 views
4
<img src="xxx" alt="xxx" title="xxx"> 
<div class="buttons"> 
    <a href="xxx"><img src="xxx" alt="xxx" title="xxx"></a> 
</div> 

Je dois écrire un sélecteur jQuery, qui sélectionnera uniquement les images avec des attributs de titre sont en dehors des .buttons div. Je sais que pour sélectionner les images avec des attributs de titre dont j'ai besoin d'utiliser quelque chose comme ceci:Sélectionnez tous les éléments qui ne sont pas dans un autre élément

$("img[title]") 

Je sais qu'il ya quelque chose comme: sélecteur non() en jQuery, mais je ne peux pas trouver le moyen de les combiner ensemble pour atteindre ce résultat exact.

Répondre

21

Vous pouvez obtenir le jeu de résultats puis filtrer à l'aide .not(), comme ceci:

$("img[title]").not(".buttons img") 

ou de filtre dans le même sélecteur à l'aide :not() (mais cela est probablement un peu plus lent dans les navigateurs plus anciens), comme ceci:

$("img[title]:not(.buttons img)") 
+0

Cela fonctionne comme un charme, merci! – Pirozek

+2

Existe-t-il un moyen de le faire sans répéter la partie du sélecteur d'origine ('img')? J'essaie de chercher des erreurs qui ne sont pas dans '.container-to-exclude', et les erreurs peuvent être plusieurs sélecteurs, donc je les ai séparés par des virgules, comme' .Error, .Errors, .Warning', et je ne ne veux pas dire '$ ('. Error, .Errors, .Warning'). not ('. container-to-exclude .Error, .container-to-exclude .Errors, .container-to-exclude. Attention ') '. – jbyrd

Questions connexes