Je voulais sélectionner tous les éléments dans le DOM qui ont un rayon de frontière! == 0.Existe-t-il un moyen de sélectionner des éléments qui utilisent une propriété CSS3 spécifique?
Est-ce que vous connaissez un moyen de faire cela?
Je voulais sélectionner tous les éléments dans le DOM qui ont un rayon de frontière! == 0.Existe-t-il un moyen de sélectionner des éléments qui utilisent une propriété CSS3 spécifique?
Est-ce que vous connaissez un moyen de faire cela?
Oui. Utilisez la fonction .filter().
$(elements).filter(function(){
return parseInt($(this).css("border-radius"),10) != 0;
});
Ne devriez-vous pas 'parseInt ($ (this) .css (" border-radius "), 10)' avant de le comparer? – Blazemonger
@Blazemonger, bon appel. Merci pour les commentaires! – JoeFletch
Maintenant, nous avons juste besoin de traiter le cas rare mais possible où 'border-radius: 0px 2px' .... – Blazemonger
Utilisez une classe CSS pour définir votre rayon de bordure, puis utilisez jQuery pour les sélectionner.
CSS:
.border-radius {
border-radius: 4px;
}
JS:
$('.border-radius')
Probablement pas ce que l'OP voulait, mais encore mieux que de ne pas changer HTML en termes de performances. Upvoted. –
encore, je ne pense pas que ce soit un bon nom de classe. –
Parce que je veux être complet, nous devons considérer le fait que border-radius
peut accepter plusieurs valeurs pour décrire les quatre coins individuellement:
$('*').filter(function() {
var br = $(this).css("border-radius").split(' '),
test = false;
for (var i = 0, j = br.length; i < j; i++) {
test = test || parseInt(br[i], 10);
};
return test;
})
http://jsfiddle.net/mblase75/SLUcb/
Cela dit, le filtrage CHAQUE élément sur la page est outrageusement inefficace. La meilleure approche consiste simplement à affecter le border-radius
à une classe et à tester l'existence d'objets avec cette classe.
sans leur attribuer une classe spécifique? Cela ne sera pas efficace ... –
Qu'en est-il de la prise en charge du rayon de bordure préfixé par le fournisseur? Par exemple '-moz-border-radius',' webkit-border-radius', '-o-border-rayon', etc? Ex: le cas où 'css ('border-radius')' ne renvoie rien mais 'css ('- webkit-border-radius')' retourne quelque chose? –
@RoatinMarth La [version 1.8 de jQuery] (http://blog.jquery.com/2012/08/09/jquery-1-8-released/) corrige ce problème avec le préfixe CSS automatique dans '.css()' méthode. – Blazemonger