Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/04/2011, 19h28   #1
Membre habitué
 
Homme
Développeur Web
Inscription : janvier 2008
Messages : 365
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2008
Messages : 365
Points : 140
Points : 140
Par défaut Récupérer valeur d'un span puis faire des opérations mathématiques

Bonjour,

Je cherche à récupérer la valeur d'un span pour réaliser des calculs mathématiques :

Code :
1
2
3
4
5
6
<script type="text/javascript">
function ValeurSpan () {
var resultat = $("#Categ25").text()+25;
	alert (resultat);
}
</script>
Code :
<span onclick="ValeurSpan()" id="Categ25">256</span>
Le problème c'est qu'il me retourne 25625 alors que j'attends le résultat 281.

Merci
Khleo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2011, 20h12   #2
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : février 2010
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Développeur
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 360
Points : 545
Points : 545
Bonjour,

En javascript, les variables sont quand même typées. La seule différence avec un language plus fortement typé, c'est qu'on a pas besoin de spécifier le type de sa variable lors de la déclaration. Ainsi les données sont typées dynamiquement, et le type d'une même variable peut changer durant l'éxécution.
La méthode 'text()' de jQuery renvoit une chaine.
Que se passe-t-il si on utilise l'opérateur + entre une chaine et un nombre ?
Si une des opérande est une chaine, l'interpréteur va faire l'opération de concaténation plutôt que l'opération mathématique.

Il faut donc "caster" le résultat obtenu par la méthode 'text' en un type 'nombre' afin de retrouver le comportement attendu.

Voici deux façon de faire :
Code :
1
2
3
4
5
6
7
8
9
10
11
var chaine = "10";
var nombre = 9;
var resultat1 = chaine+nombre; // concaténation : 109
var resultat2 = nombre+chaine; // concaténation : 910
chaine = parseInt(chaine,10); // méthode standard pour convertir une chaine en nombre entier. le deuxième paramêtre sert à forcer la conversion vers une base 10, utile pour le cas d'une chaine comme "08".
//chaine = parseFloat(chaine,10); // méthode standard pour convertir une chaine en nombre flottant. le deuxième paramêtre sert à forcer la conversion vers une base 10, utile pour le cas d'une chaine comme "08".
//chaine = +chaine; // pré-incrémentation d'une chaine : méthode élégante mais très peu explicite...
var resultat3 = chaine+nombre; // 19
alert(resultat1);
alert(resultat2);
alert(resultat3);
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 16h20   #3
Membre habitué
 
Homme
Développeur Web
Inscription : janvier 2008
Messages : 365
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2008
Messages : 365
Points : 140
Points : 140
Bonjour,

Merci pour la réponse, ça fonctionne parfaitement

++
Khleo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 14h40   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
Code :
$('#bar').text($('#bar').text()*1+25)
.



Code :
<span id="bar">10</span>
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h41.


 
 
 
 
Partenaires

Hébergement Web