154 votes

Comment obtenir juste la partie numérique de la propriété CSS avec jQuery?

J'ai besoin de faire un calcul numérique basé sur des propriétés CSS. Cependant, lorsque je l'utilise pour obtenir des informations:

$(this).css('marginBottom')

elle renvoie la valeur '10px'. Est-il une astuce pour obtenir juste le numéro de la partie de la valeur qu'il s'agisse px ou % ou em ou quoi?

280voto

Bob Points 34449
parseInt($(this).css('marginBottom'), 10);

parseInt sera automatiquement ignorer les unités.

Par exemple:

var marginBottom = "10px";
marginBottom = parseInt(marginBottom, 10);
alert(marginBottom); // alerts: 10

158voto

zakovyrya Points 5403

Cela va nettoyer tous les chiffres, non des points, et non d'un signe moins à partir de la chaîne:

$(this).css('marginBottom').replace(/[^-\d\.]/g, '');

Mise à JOUR pour les valeurs négatives

117voto

maximelebreton Points 631

Avec la méthode replace, css valeur est une chaîne, et non pas un nombre.

Cette méthode est plus propre, simple, et renvoie un nombre :

parseFloat($(this).css('marginBottom'));

13voto

Alex Pavlov Points 546
parseFloat($(this).css('marginBottom'))

Même si marginBottom défini dans em, la valeur à l'intérieur de parseFloat ci-dessus seront en px, car il est calculé de la propriété CSS.

9voto

Diodeus Points 67946
$(this).css('marginBottom').replace('px','')

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