Le sélecteur class=^fx-
trouverait que des éléments comme celui-ci:
<div class="fx-foo bar">...</div>
... et pas ceux comme ceci:
<div class="bar fx-foo">...</div>
... parce que le fx-
ne semble pas au commençant de l'attribut. Si vous avez le deuxième formulaire, malheureusement votre seule option est de regarder tous les éléments et de filtrer ceux qui n'ont pas de classe fx-xxx
dessus. Il n'y a actuellement aucun sélecteur pour "contient un mot commençant par". Comme pour trouver toutes les règles définissant un sélecteur de classe à partir de fx-
, vous pouvez le faire. document.styleSheets
vous donne une liste de toutes les feuilles de style appliquées au document en cours. Chaque objet de la feuille de style a une liste des règles qui lui sont définies (ce sera cssRules
ou seulement rules
selon l'âge et la marque du navigateur). Chaque règle (CSSStyleRule
object) contient des informations sur la règle, y compris selectorText
, ce qui vous donne le sélecteur complet de la règle. Vous pouvez donc analyser ce sélecteur pour voir s'il définit une règle de classe commençant par fx-
. Assurez-vous de laisser des virgules en regardant le sélecteur (par exemple, .foo, .fx-bar { ... }
), et méfiez-vous que les chaînes du sélecteur d'analyse, bien que pas dur, est non-trivial.
Vous avez réellement besoin de ['$ ('class^= fx-')'] (http://api.jquery.com/attribute-starts-with-selector/). jQuery ne peut pas rechercher si les classes sont définies dans votre CSS, malheureusement, mais vous pouvez facilement tester si une classe donnée existe dans le DOM en cochant 'if ($ ('. some-class'). longueur> 0)' – Blazemonger
Pour ce faire, vous avez besoin d'un analyseur CSS écrit en JavaScript, et tout configurer ne prendra pas cinq minutes. Êtes-vous sûr que votre but ultime ne peut pas être atteint d'une autre manière? – Jon
Merci pour votre réponse rapide, ... mais je pense que c'est possible ... j'ai trouvé quelque chose comme ça mais ce n'est pas enfin ce dont j'ai besoin ... http://jsfiddle.net/markcoleman/TKHpV/5/ – HR123