0 votes

JQuery attraper td

Essayer d'attraper td avec style:

J'espère que cela devrait fonctionner, mais ce n'est pas le cas:

td:[style='color: #333;']

Une idée?

Merci.

1voto

jAndy Points 93076

Il semble qu'il manque une fonctionnalité.

$.fn.hasStyle = function(style){
   return this.filter(function(){
     return ($(this).attr('style').indexOf(style) > -1)
   }).length > 0;
};

Synopsis:

$('td').hasStyle('color: #333');

Dans votre cas, cela pourrait même être un sélecteur personnalisé :

$(document).ready(function(){
  $.extend($.expr[':'], {
       hasStyle: function(e, i, arg){
          var s = new String($(e).attr('style'));        
          return( s !== 'undefined' && s.indexOf(arg[3]) > -1 );
       }
  }); 
});​

Synopsis:

 $('td:hasStyle("color: #333")').fadeOut('slow');

exemple de travail :

http://jsbin.com/atavu3/edit

0voto

Samuel De Backer Points 764
$('td[style="color: rgb(51, 51, 51);"], td[style="color: #333;"], td[style="COLOR: #333"]')

Cela fonctionne dans Explorer 8, Firefox, Safari et Chrome démonstration

0voto

Chris Points 15358

Je soupçonne que la raison pour laquelle cela ne fonctionne pas est parce que certains navigateurs vont "normaliser" les valeurs. Ainsi, il se peut que lors de l'analyse, le #333 soit en fait changé en une chaîne de couleur standard à 6 caractères #333333 (ou peut-être même en une style rgb()). Je dois admettre que je ne trouve pas de solution à cela immédiatement, mais vous devriez pouvoir le confirmer en effectuant quelques tests simples pour lire les valeurs actuelles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X