2012-03-18 2 views
1

Je dois trouver un a -tag's ID par son style.Trouver l'ID d'élément par son style

Mon élément a la classe .sort.

Le style de l'élément est ajouté par programmation plus tôt dans l'une des deux fonctions get, et je dois le trouver dans une troisième fonction get.

+1

Hiya, avez-vous un show man de code? Sera utile, acclame –

+1

poster votre code que vous avez jusqu'à maintenant – DG3

Répondre

2
var result = $('a.sort[style="foo"]').attr('id'); 

Ou si vous n'utilisez des styles de ligne (qui vous ne devriez pas ...):

var result = $('a.sort').filter(function(){ 
          return $(this).css('foo') == valueYouAreSearching; 
         }).attr('id'); 

Notez que la recherche par un style sonne bizarre!
Il suffit d'ajouter l'élément d'une nouvelle classe, et rechercher par son nouveau nom de classe:

var result = $('a.sort.newClass').attr('id'); 
+0

merci @gdoron! –

+0

** @ DownVoter ** Envie de commenter? – gdoron

1

Si l'élément est le seul avec la classe .sort

var theID = $(".sort")[0].id; 

Ou vous pouvez faire quelque chose comme ceci:

var theID = $(".sort").filter(function() { 
    return $(this).css("marginLeft") == 0; 
})[0].id; 

Vous donne ID de premier élément avec la classe .sort et marginLeft ensemble à 0

Pour s'assurer que cela ne se casse jamais même si vous avez pas de match:

var theID = ($(".sort").filter(function() { 
    return $(this).css("marginLeft") == 0; 
})[0]||{}).id; 

Ensuite ID contiendra un id ou undefined DOM Element

+0

Vous pourriez le simplifier avec '.attr ('id')' comme je l'ai fait. pas de raison de réinventer la roue ... =) – gdoron

+1

car ma méthode est 10 fois plus rapide: http://jsperf.com/attr-id-vs-0-id – andlrc

+0

** 0.00001 VS 0.00010 **. Je choisis la version lisible! C'est _premature optimisation, la racine de tous les maux._ – gdoron

Questions connexes