2011-03-28 1 views
0

j'ai un liencomment isoler l'une des deux classes

<a href="" class="states state1">More Info</a> 

et je veux obtenir le state1 de classe et pas les états

J'ai essayé

$(".states").attr("class") 

"states state1" 

mais quand j'essaie

>> $(".states").attr("class").not(".states") 
TypeError: $(".states").attr("class").not is not a function 
>>> $(".states").attr("class").not("states") 
TypeError: $(".states").attr("class").not is not a function 

des idées comment obtenir l'autre classe

+5

'$ (». State1 ') '? –

+0

le problème est que je ne l'ai pas disponible – Trace

+0

@Tamer, pourquoi pas? – Neal

Répondre

2

pourquoi ne pas simplement sélectionner tout ce qui ont .state1?

$('.state1').(js fn...) 

ou si chaque état (state1, 2, 3, ...) est unique, vous pouvez utiliser les ID et obtenir l'identifiant facilement:

$('.state').each(function(){ 
    var stats_is = this.id; 
}) 
1

A-forc-brute ey peu, mais cela fonctionne:

var classes = $('.states').attr('class').replace('states','').trim(' ').split(' ') 
for(var i=0;i<classes.length;i++) 
    alert(classes[i]) 

Edit: Juste pour re-itterate ce que ive déjà mis dans un commentaire, il semble que vous êtes en train de tout casser dans l'attribut de classe, où vous pourriez facilement utiliser un autre attribut et rendre votre vie beaucoup plus simple:

<a href="" class="states" data-stateId="state1">More Info</a>

maintenant, vous pouvez simplement aller

$('.states').attr('data-stateId') 
1

$ ("déclare "). ToggleClass ('états'). Attr (" class")

jsfiddle

Questions connexes