2010-03-26 12 views
0

J'essaie d'utiliser jQuery pour envelopper fondamentalement un tas de modifications CSS via jQuery mais sur les pages où les IDs ou Classes n'existent pas, je reçois des erreurs? CommejQuery Rechercher un autre élément ne fait rien?

jQuery(".class").css(random_stuff) n'est pas une fonction

Toutes les idées ce que je peux faire pour soit trouver les éléments et ne rien faire ou?

+0

Voir cette question http://stackoverflow.com/questions/31044/is-there-an-exists-function-for-jquery – Catfish

Répondre

5

Dans ce cas, il ressemble à la bibliothèque jQuery est pas être inclus correctement.

Si jQuery ne trouve rien correspondant à votre sélecteur, rien ne se passera car il n'a trouvé aucun élément sur lequel exécuter l'action, il s'agit du comportement par défaut.

+0

C'est un bon point, jQuery ne lance pas si la valeur de retour est vide, elle ne fait rien. – technophile

+0

hey merci - mais si je veux essayer et "trouver et si ne peux pas trouver ne rien faire" comment puis-je faire cela? – Andrew

+0

@Andrew le chaînage par défaut fait ceci: 'jQuery (". Class "). Css (random_stuff)' rien d'autre ... votre erreur est que la librairie jQuery n'est pas correctement incluse dans la page. Essayez 'alert (window.jQuery);' –

0
if(jQuery(".class").length) 
{ 
    jQuery(".class").css(random_stuff); 
} 

par Jquery Faq

Vous pouvez utiliser la propriété de longueur de la collection jQuery retournée par votre sélecteur :

+1

Bien que ce soit précis, c'est un contrôle entièrement superflu :) –

+0

Et que ce soit vrai 0 est fausse, je pense qu'il vaut toujours la peine de mettre le '0 'supplémentaire pour la lisibilité :) –

0

Vous pouvez vérifier la propriété de valeur de retour length:

var myElement = $('.class'); 
if (myElement.length > 0) 
    myElement.css(random_stuff); 
+0

cool donc si je voulais "trouver et si ne peux pas trouver ne rien faire" comment ferais-je cela :)? – Andrew

1

Sons comme vous manque une référence à jQuery sur ces pages. jQuery n'effectue qu'une action sur la sélection correspondante ... il n'y aura pas d'erreur si rien ne correspond.