Próbuję napisać JavaScript, który przejdzie przez rozpiętość, chwyć swoją wartość i przechowuje go w zmiennej, która może być używana do wykonywania arytmetyki.

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

Dotyczy powyższych dwóch linii, moja funkcja jest podana poniżej. W tym obecnym skonfigurowaniu nie mam żadnego wyniku.

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

Powinienem uzyskać odpowiedź "5", ale nic nie dostać. Znam rzeczywiste prace arytmetyczne, jeśli wymuszam wartość liczbę całkowitą / pływakową do zmiennych. Wydaje mi się mieć ciągłe problemy z blokami "30" i "6", które są wartościami zakresu. Jakieś pomysły, jak chwycić te wartości 2 rozpiętości?

4
J.C.Morris 27 lipiec 2012, 19:10

2 odpowiedzi

Próbować

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);
2
antonienko 27 lipiec 2012, 15:15

Jest tu wiele problemów. Po pierwsze, w jQuery ('#something') konstruuje odniesienia do elementu Dom przez ID. Więc musisz użyć $ ('# cotygodniową') i $ ("# co miesiąc"), aby odwołuje się do elementów rozpiętości.

Po drugie, wartość klasy ServerData, która jest stosowana do tagu, nie jest dostępną nieruchomością na elemencie, więc próbując odnieść się do $ ("# co miesiąc"). Serverdata nic dla ciebie nie zrobi.

To, czego naprawdę szukasz, jest zawartością HTML węzła, do którego można uzyskać dostęp do tego

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

Nie jestem pewien, czy te gwiazdki są tam czy nie. Jeśli są naprawdę tam, musisz je usunąć:

var a = parseInt($('#Weekly').html().replace('*', ''));
2
Mike Brant 27 lipiec 2012, 15:24