Stocker une valeur de portée dans une variable javascript

J'essaie d'écrire javascript qui passera par une portée, saisira sa valeur et la stocke dans une variable qui peut être utilisée pour effectuer l'arithmétique.

<span id ="Weekly" class="ServerData" data-tag="WeeklyCarSales">**30**</span> <span id ="Monthly" class="ServerData" data-tag="DailyCarSales">**6**</span> 

En ce qui concerne les deux lignes ci-dessus, ma fonction est donnée ci-dessous. Dans cette configuration actuelle, je n'obtiens aucun résultat.

 function divide(n1, n2) { ans = n1 / n2; document.write(" " + ans + "<BR>"); return ans; } var a = $('#WeeklyCarSales').ServerData; var b = $('#DailyCarSales').ServerData; divide(a, b); 

Je devrais obtenir une réponse de "5" mais ne rien obtenir. Je sais que l'arithmétique réelle fonctionne si je force une valeur entière / flottante dans les variables. Je semble avoir des problèmes continus pour verrouiller le '30' et '6', qui sont les valeurs de portée. Des idées sur la façon de saisir ces 2 valeurs de portée?

Cela devrait faire l'affaire…

 function divide(n1, n2) { var ans = n1 / n2; document.write(" " + ans + "<BR>"); return ans; } var a = parseInt($("#Weekly.ServerData").text().replace(/\*/gmi, ""), 10) , b = parseInt($("#Monthly.ServerData").text().replace(/\*/gmi, ""), 10); divide(a, b); 

Voici JSFiddle

essayer

 function divide(n1, n2) { ans = n1 / n2; document.write(" " + ans + "<BR>"); return ans; } var a = $('#Weekly').html().replace('*',''); var b = $('#Monthly').html().replace('*',''); divide(a, b); 

Il y a plusieurs problèmes ici. Tout d'abord, jQuery la construction ('#SOMETHING') fait référence à un élément DOM par ID. Donc, vous devriez utiliser $ ('# Weekly') et $ ('# Monthly') pour faire référence aux éléments de portée.

Deuxièmement, la valeur de classe ServerData qui est appliquée à la balise n'est pas une propriété disponible sur l'élément, alors essayez de faire référence à $ ('# Monthly'). ServerData ne fera rien pour vous.

Ce que vous recherchez vraiment, c'est le contenu HTML du noeud auquel vous allez accéder

 var a = parseInt($('#Weekly').html()); 

Je ne sais pas si ces astérisques sont effectivement là ou pas. S'ils sont vraiment là, vous devez les supprimer comme ceci:

 var a = parseInt($('#Weekly').html().replace('*', ''));