Mensen, ik ben begonnen met javascript/jquery/ajax.

En ben een reken module aan het maken om oppervlakte en inhoud te berekenen.

Alleen als ik het totaal bedrag wil uitrekenen geeft die dit aan: NaN.

Alleen ik snap niet hoe ik het anders moet uitrekenen.

Dit is de relevante code.

<script type="text/javascript">

function berekentotaal() {
    
    var id;
    var max;
    var lengte;
    var breedte;
    var hoogte;
    var oppervlakte;
    var inhoud;
    var oppervlaktetotaal;
    var inhoudtotaal;
    
    max = document.getElementById("aantal").value;

    for(x = 0; x <= max; x++)
    {
        
        lengte = document.getElementById("lengte["+x+"]").value;
        breedte = document.getElementById("breedte["+x+"]").value;
        hoogte = document.getElementById("hoogte["+x+"]").value;
        
        oppervlakte = lengte * breedte / 100;
    
        if(hoogte != '')
        {
            inhoud = parseInt(lengte) * parseInt(breedte) * parseInt(hoogte) / 100;
        }
        else
        {
            inhoud = 0;
        }
        
        if(oppervlakte > 0)
        {
            
            
            console.log(oppervlakte);
            
            oppervlaktetotaal = oppervlakte + oppervlaktetotaal;
            
            
            
        }
        
        if(inhoud > 0)
        {
            inhoudtotaal = inhoudtotaal + parseInt(inhoud);
            //console.log(inhoudtotaal);
        }
        
        
    
    }
    
    console.log(oppervlaktetotaal);
    
}</script>


De console.log gebruik ik om te kijken wat er allemaal gebeurd.

Kan iemand mij vertellen wat ik fout doe? En misschien een tutorial waarin dit probleem word uitgelegd.

[size=xsmall]Toevoeging op 20/11/2011 22:40:35:[/size]

Heb het opgelost.

Had oppervlaktetotaal geen beginwaarde meegegeven.

NaN is Not a Number dus waarschijnelijk heb je ergens een typ foutje gemaakt veel verstand van javascript heb ik eigenlijk niet verder
Toch nog even wat JS tips van mij:
- Je hebt nu iets van 10 keer var geschreven. Dit kan je veel korter doen:
var hoogte;
var breedte;
var lengte;
// Is hetzelfde als
var hoogte,
    breedte,
    lengte;

- Je gedefinieerd eerst max en vervolgens voeg je er een waarde aan toe. Dit kan je ook in 1 keer doen:
var hoogte,
   max = document.getElementById('max').value,
   breedte,
   lengte;

- Een veel coolere variant van parseInt is het gebruik van ~~ (double bitwise not). Dit werkt precies hetzelfde: http://james.padolsey.com/javascript/double-bitwise-not/
- Via strict genomen JS moet je in de for loop ook x definiëren. Dit doe je door var ervoor te zetten:
for( var x=0; x <= max; x++ )

Reageren