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('*', ''));