2009-12-11 3 views
1

je le code suivant:la classe de l'élément cliqué en utilisant Jquery

$(".perf-row").click(function(e) { 
     if (e.target.tagName.toLowerCase() == "a") { 
     pageTracker._trackPageview($(this).attr("rel")); 
     return true; //link clicked 
     } else { 
     window.open($(this).attr("rel"));return false; 
     } 
    }); 

à la statment conditionnelle de if (e.target.tagName.toLowerCase() == "a") je voudrais également ajouter « ou de classe est égal au prix ».

Je ne suis pas sûr de savoir comment faire cela, je n'arrive pas à trouver la classe de l'élément cliqué (qui sera un td dans la rangée du tableau).

j'ai essayé $(this).class, $(this.class) mais ni travail ....

aide serait grandement appréciée!

Répondre

0

Vous pouvez combiner les deux vos tests en une seule commande jQuery:

if($(e.target).is('.price, a')) { .... } 

qui teste si la cible est soit a la classe price, ou est une balise a, ou est à la fois. Si vous voulez vérifier que c'était une étiquette aet avait la classe price, utilisez ceci:

if($(e.target).is('a.price')) { .... } 

Mise à jour: j'ai mal lu votre question. Si vous alliez ajouter ce deuxième test au même test if, utilisez mon code. Si vous souhaitez ajouter un else if, utilisez la méthode .hasClass comme expliqué par les autres réponses.

2

Pour voir si l'élément a la classe .price, utilisez la méthode $.hasClass().

$(this).hasClass("price"); 
+0

Aucun préfixe de point n'est nécessaire ici. –

+0

Vous avez raison, Joel. Je pensais en termes de sélecteurs. Mise à jour :) – Sampson

-2

vous pouvez essayer:

$(this).attr("class"); 

mais cela vous retourne les noms de toutes les classes appliquées à l'élément.

+0

Puisque jQuery a une méthode pour tester la classe, il s'agit juste d'une réponse incorrecte, bien qu'elle renvoie les classes. –

Questions connexes