2010-12-04 2 views
0

Quelqu'un pourrait-il s'il vous plaît aider avec les éléments suivants jQuery(ui-ui bouton ou-widget) mais (pas un enfant de #id ou #id) et (pas de classe x) sélecteur jQuery

Je dois tout boutons jQuery UI qui ne sont pas des enfants de deux tables # ID1 et # ID2 et non de classid = x

ce que je suis venu avec est à ce jour

$(":button(.ui-button .ui-widget):not(#table1 #table2):not(.MyCustomClass)") 

mais cela ne marche pas semblent fonctionner. ..

Qu'est-ce qui me manque?

Répondre

1

Je pense que vous voulez:

$(':button.ui-button, :button.ui-widget').not('#table1 *, #table2 *').not('.MyCustomClass') 

Il est généralement plus rapide pour briser les qualificatifs sur le sélecteur.

+0

Semble être correct, vérifiant maintenant. Je me demandais si c'était plus rapide. N'a pas été sûr ... Est-il toujours logique de briser les déclarations que vous montrez? Enfin, que signifie l'étoile après l'identifiant de la table? Merci beaucoup pour votre aide .... –

+1

Je ne suis pas une personne d'optimisation jQuery super-intelligente, mais je crois comprendre que c'est * habituellement * plus rapide de faire des choses compliquées ".not()" (explicitement séparées) appels de fonction. Pour moi, c'est vraiment plus facile à comprendre de cette façon, mais c'est juste une opinion. Le "*" dans "# table1 *" est un sélecteur qui dit "tout ce qui descend de l'élément avec l'ID 'table1'" - c'est ce qu'un bouton à l'intérieur de "table1" correspond, donc nous filtrons juste ceux dehors. – Pointy

0

Essayez (demo):

$('table:not(#table1, #table2) .ui-button:not(.MyCustomClass)') 
Questions connexes